![Apache htaccess RewriteRule 删除尾随斜杠;无限循环?](https://linux22.com/image/565160/Apache%20htaccess%20RewriteRule%20%E5%88%A0%E9%99%A4%E5%B0%BE%E9%9A%8F%E6%96%9C%E6%9D%A0%EF%BC%9B%E6%97%A0%E9%99%90%E5%BE%AA%E7%8E%AF%EF%BC%9F.png)
.htaccess
我在( )中使用以下内容mod_rewrite
从我的 URL 中删除尾随斜杠:
RewriteRule ^([a-z0-9_-]+)/$ $1 [L,NC,R=301]
当然,由于字符类与斜杠不匹配,因此这对于像 这样的链接来说可以正常工作some_page/
,但不是article/some_page/
。
如果我在字符类中添加斜线以制作[a-z0-9_/-]
,则在尝试加载页面时会出现无限循环。我还尝试+
使用 制作非贪婪+?
,但这也没有用;删除R=301
重定向也没有用。
(如果有区别的话,要加载的页面/article/some_page/
实际上是/article/some_page/index.html
,我只是希望它显示为/article/some_page
。)
答案1
如果有影响
是的。如果您传递的 URL 映射到不带尾随“/”的目录,Apache (mod_dir) 将发回重定向,例如
[colinm@example ~]$ curl -I http://localhost/somedir
HTTP/1.1 301 Moved Permanently
Date: Mon, 24 Oct 2011 11:48:37 GMT
Server: Apache/2.2.3 (Red Hat)
Location: http://localhost/somedir/
Content-Type: text/html; charset=iso-8859-1