使用 .htaccess 删除 .php 扩展名会复制我的页面吗?

Does removing .php extension with .htaccess duplicate my pages?

我刚刚删除了我网站上文件的 .php 扩展名,将此代码添加到我的 .htaccess 文件中(当我第一次打开文件时第一行已经存在):

AddHandler application/x-httpd-php71 .php .php5 .php4 .php3

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ .php
</IfModule>

事实上,现在我可以通过两种方式访问​​我的网站,我的意思是通过 misite。com/shop 和 misite。com/shop。php

这是否会影响我的页面 SEO,因为同一个页面可以通过两种不同的方式访问,或者这不会有任何问题吗?

我想更改的另一件事是,当我单击我的索引站点时,它显示为 mysite。com/index(因为现在我已经删除了 .php 扩展名)。我怎样才能让它只显示 "mysite.com" 而没有“/index”?

下面的代码将帮助您删除 .php 扩展并在没有 .php 格式的情况下重定向它:

## hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} \s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ .php [L]

这是您处理SEO相关问题的元代码。使用rel="canonical",是用来让搜索引擎知道页面原来的URL。下面是一个例子,它会让机器人知道 URL http://example.com/ is the actual URL of http://example.com/index

<link rel="canonical" href="http://example.com/" />

在锚文本中,<a href="./">Home</a> 而不是 <a href="index.php">Home</a>

希望这个回答对你有用。