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



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

a( 删除.php扩展

b( 重定向索引.php 到 www.mysite.com ( 与索引一起 (

我在堆栈溢出中搜索,我想出了:

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 它正确显示关于.php的页面。但是如果我加载 www.mysite.com/about.php 它不会删除.php扩展名,对于谷歌来说,这是 2 个不同的页面。

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

希望我能正确解释我的问题。在恢复中,htaccess 正在工作,但看不到如何按照我想要的方式调整它。

( 注意:我的网站页面之间的内部链接是...href="about">About Us... (

非常感谢!

再次编辑

尝试

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

最新更新