RewriteRule不适用于.htaccess中的尾部斜杠

时间:2018-09-25 13:00:47

标签: regex apache .htaccess mod-rewrite

我的.htaccess中有一个RewriteRule,它几乎可以按我的意愿工作。 我想要的是一个与可选的斜杠一起使用的规则。

foo.com/bar   > foo.com/index.php?p=bar
foo.com/bar/  > foo.com/index.php?p=bar

我有什么?

RewriteEngine On
RewriteCond %{REQUEST_URI} !^(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.pdf)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/?$ index\.php\?p=$1 [NC,L]

但是当添加斜杠时,这似乎不起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用此规则来允许使用可选的斜杠:

RewriteCond %{REQUEST_URI} !\.(png|jpe?g|gif|bmp|pdf)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)/?$ index.php?p=$1 [QSA,L]