【发布时间】:2020-05-15 17:29:42
【问题描述】:
我正在尝试通过在末尾附加 /public 来重定向对目录的任何请求。将这一行添加到我的 .htaccess 文件中:
Redirect 301 /somedirectory/ http://www.my-site.com/somedirectory/public/home.shtml
然后尝试访问 www.my-site.com/somedirectory 会导致浏览器(桌面版 Firefox,但也尝试过桌面版 Edge 和移动版 Firefox,结果相同)显示以下内容:
页面未正确重定向 Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。此问题有时可能是由禁用或拒绝接受 cookie 引起的。
地址栏中显示的网址是这样的:
有谁知道发生了什么以及如何纠正?
【问题讨论】:
-
嗨,有趣,不确定这是否会引起兴趣stackoverflow.com/questions/21417263/…
-
重定向路径 prefixes 上的匹配项,并将请求的 URL 的其余部分附加到新 URL -
/somedirectory/匹配/somedirectory/public/home.shtml作为前缀,因此再次重定向,并附加了多余的部分。您不能使用 Redirect 指令执行此操作,这需要 RedirectMatch(在末尾锚定模式)或 RewriteRule。 -
@CBroe - 明白了,这是有道理的。由于我仍在学习这一点,我可能会在解决重写的乐趣之前尝试 RedirectMatch!我想我需要类似于
RedirectMatch 301 ^/somedirectory/(.*)$ http://www.my-site.com/somedirectory/public/$1的东西 -
@IronMan - 感谢您的建议,我想知道尾随/前导斜杠是否与它有关