添加一个斜杠mod_rewrite

只是想知道如何使用Mod_Rewrite在我的URL的末尾添加尾部的斜线?

这是我的.htaccess文件目前:

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

我的url显示如下:

WWWW。 ****** .com / pageName

我希望它显示如下:

WWWW。 ****** .com / pageName /

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

Solutions Collecting From Web of "添加一个斜杠mod_rewrite"

您可以轻松地向客户端看到的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之前发生。 请注意,当浏览器被重定向到以/结尾的URL时, index.php规则的pageName参数将以斜线结尾。

我知道这是旧的,但对于其他人来说,它仍然是有用的。

Jon Lin的回答是正确的,我会加上这个作为评论,但是我没有足够的声望。

由于你知道最后总会有一个斜杠,你可以使用$pageName = substr($pageName, 0, -1); 。 这就是我至少在做的事情。

希望这是有用的。