使用Apache向URL添加尾部斜杠

时间:2010-11-19 10:26:32

标签: php .htaccess mod-rewrite

我正在一个名为testsite的目录中工作,我希望所有.php扩展名都被一个尾部斜杠替换。我就在那里(例如)输入http://mydomain.com/testsite/about表示已加载http://mydomain.com/testsite/about.php

但是,我现在希望将URL显示为./about/,以便只有一个版本显示在搜索引擎排名中。

这是我的.htaccess:

RewriteEngine On
RewriteBase /testsite/
RewriteRule ^()$ index.php [NC,L]
RewriteCond %{REQUEST_URI} !(^/?.*\..*$) [NC]
RewriteRule (.*)$ $1.php [NC]

此外,是否可以保留(并隐藏显示我传递的任何参数)?

非常感谢所有帮助!

2 个答案:

答案 0 :(得分:1)

请尝试以下规则:

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteRule ^$ index.php [L]
RewriteRule (.*)/$ $1.php [NC]

答案 1 :(得分:0)

尝试用以下内容替换最后一条规则:

RewriteRule (.*)$ $1.php [NC] [E=ORIGINAL_URL:$1]