添加尾部斜杠mod_rewrite

时间:2012-10-04 08:31:41

标签: linux apache mod-rewrite centos

只是想知道如何使用Mod_Rewrite在我的网址末尾添加一个尾部斜杠?

这是我目前的.htaccess文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ index.php?pageName=$1

我的网址显示如下:

WWWW。的 ****** 的.com /页面名

我想让它像这样展示:

WWWW。的 ****** 的.com /页面名/

URL在内部持有GET请求,但我希望它看起来像一个真正的目录。

2 个答案:

答案 0 :(得分:6)

您可以轻松地向客户端看到的URL添加尾部斜杠,但是您必须考虑在重定向浏览器后获得的请求中的斜杠。

所以重定向看起来像这样:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

你会希望它高于:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ index.php?pageName=$1

规则集,因为重定向需要在路由到index.php之前发生。请注意,当浏览器重定向到以/结尾的网址时,您的index.php规则将包含 pageName 参数,其中包含一个尾部斜杠。

答案 1 :(得分:0)

我知道这已经过时了,但对于那些找到它的人来说它仍然有用。

Jon Lin的回答是正确的,我会将此作为评论添加,但我没有足够的声誉。

OP关于删除尾部斜杠的评论,因为你知道它最后会有一个斜杠,你可以$pageName = substr($pageName, 0, -1);。这就是我至少在做的事情。

希望这很有用。