.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