使用mod_rewrite删除尾部斜杠?

时间:2009-09-02 15:05:30

标签: regex mod-rewrite

这与我之前的问题(可以查看here)有关。我希望能够从URL中删除尾部斜杠,以便它不会弄乱我网站的某些区域。 .htaccess代码在这里:

# -s = File Exists
RewriteCond %{REQUEST_FILENAME} -s [OR]
# -l = Is a SymLink
RewriteCond %{REQUEST_FILENAME} -l [OR]
# -d = Is a Directory
RewriteCond %{REQUEST_FILENAME} -d
# if we match any of the above conditions - serve the file.
RewriteRule ^.*$ - [NC,L]

# only allows '.' in the "page" portion.
RewriteRule ^([^/.]+)/?$ index.php?section=$1 [L]
RewriteRule ^([^/.]+)/([^/]+)/?$ index.php?section=$1&page=$2 [L]
RewriteRule ^([^/.]+)/([^/]+)/([^/.]+)/?$ index.php?section=$1&page=$2&split=$3 [L]

和以前一样,我对此深表不了解,所以有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

我假设你在谈论规则:

RewriteRule ^.*$ - [NC,L]

另一个已经省略了尾随斜杠。

请改为尝试:

RewriteRule ^(.*)/$ $1 [NC,L]

这是我在日志中看到的内容(缩写):

applying pattern '^(.*)/$' to uri 'host/'
rewrite 'host/' -> 'host'

这对我来说似乎没问题。