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

时间:2018-05-10 09:24:46

标签: php .htaccess hosting

我刚删除了网页上文件的.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 ^(.*)$ $1.php
</IfModule>

事实是,现在我可以通过misite.com/shop和misite.com/shop.php访问我的网站

这是否会影响我的页面搜索引擎优化,因为可以通过两种不同的方式访问同一页面,或者这不会意味着任何问题?

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

1 个答案:

答案 0 :(得分:3)

以下代码可帮助您移除.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 ^(.+?)/?$ $1.php [L]

这是您处理SEO相关问题的元代码。使用rel="canonical",用于让搜索引擎知道该网页的原始网址。以下是您的示例,它会让机器人知道网址http://example.com/http://example.com/index的实际网址

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

在锚文本中,<a href="./">Home</a>代替<a href="index.php">Home</a>

我希望这个答案能为你做到。