htaccess删除php扩展和重定向索引

时间:2012-05-11 10:15:06

标签: .htaccess

在我的网站(所有.php文件)中我想使用htaccess:

a)删除.php扩展名

b)将index.php重定向到www.mysite.com(连同索引)

我在stackoverflow中搜索,我想出了:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

#Rewrite index.php back to /
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteRule . / [R=301,L]

哪个部分工作但是看不出如何纠正这个:

a)如果我加载(在浏览器中)页面www.mysite.com/about,它会正确显示about.php页面。但是,如果我加载www.mysite.com/about.php,它不会删除.php扩展名,对于google这是2个不同的页面。

b)如果我加载(在浏览器中)页面www.mysite.com/index.php它会转到www.mysite.com这是我想要的但如果加载www.mysite.com/index我有一些问题因为它显示相同的页面,但无法在这里看到如何删除索引部分。所以,再次,谷歌我有2个不同的页面。

希望我能正确解释我的问题。 在简历中,htaccess正在运行,但无法看到如何根据需要调整它。

(视频:我网站中的网页之间的内部链接是... href =“about”>关于我们...)

非常感谢!

1 个答案:

答案 0 :(得分:0)

再次编辑

尝试

RewriteCond %{THE_REQUEST} ^[^/]*/^(.*)$\.php [NC]
RewriteRule . /$1 [R=301,L]