添加尾部斜杠mod_rewrite

Con*_*abe 2 linux apache mod-rewrite centos

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

这是我目前的.htaccess文件:

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

我的网址显示如下:

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

我希望它像这样显示:

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

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

Jon*_*Lin 6

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

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

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

你会希望它高于:

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

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