![]() |
1
12
经过几个小时的搜索和测试,我终于找到了真正的问题和解决方案。希望这也能帮助其他人,当他们遇到同样的问题。
观察行为的原因.htaccess文件在每次重定向后处理(即使没有[R]标志) ,
也就是说
再次澄清一下:因为只能观察到硬重定向,所以似乎忽略了[L]标志,但事实并非如此。相反,处理.htaccess两次,在
要虚拟地将子目录移动到应用程序根目录,必须使用其他复杂的条件重写。变量
要匹配此重写规则,必须应用两个条件。首先,在第二行,“localuri”必须以
重定向到允许的内容从根目录到子文件夹(软)
我们想重定向到允许的内容,如果我们还没有这样做,因此第一个条件。第二个条件指定允许内容的掩码。与此掩码匹配的任何内容都将被软重定向,如果内容不存在,则可能返回404错误。 隐藏所有不在子文件夹中或不允许的内容
这将对所有不以开头的uri执行硬重定向到应用程序根目录
我在“问题”中所显示的代码在使用上述解决方案提示后逐渐转变为:
|
![]() |
2
0
为了调试,试着简化你的正则表达式和你要求的url(你想要匹配的完整url的一部分),看看它是否工作,现在一步一步地,向正则表达式和测试url添加更多的位,直到你找到停止工作的地方。 |
![]() |
3
0
如果它仍然循环,放一个
|
![]() |
Laurent · Htaccess仅重定向一个带有查询字符串的URL 7 年前 |
![]() |
amazedinc · 特定于页面的mod\u重写规则 7 年前 |
![]() |
fluxus · 目录和文件共享相同名称时清除URL 7 年前 |
![]() |
Y. EY · 如何编写htaccess重写规则以匹配连字符? 7 年前 |
![]() |
kai · 友好url中的非强制参数 7 年前 |
![]() |
Andrik007 · 如何使用htaccess拆分URL 7 年前 |
![]() |
tanghus · 删除“”“”从查询字符串 7 年前 |