.htaccess htaccess遵循以前的规则

67up9zun  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(172)

我正在努力实现以下与htaccess。
重定向301域1/menu 1/域2/menu 1/
重定向301域1/menu 1/submenu 1域2/menu 2
但它记住了前一条规则,并将其放在第二条规则中的menu 1之间,如Domain 2/menu 1/menu 2。
我如何才能避免这一点和每一个规则不遵循其余的规则?
先谢了。
我已经尝试了所有的可能性,但到目前为止没有任何工作。

zphenhs4

zphenhs41#

颠倒这两条规则。mod_alias Redirect指令是前缀匹配,因此第一条规则匹配/menu1/submenu1请求,match 之后的所有内容都附加到目标上。
但是你也不能使用Redirect指令来匹配“domain”,它只能匹配URL路径。
查看Apache文档:

  • https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
eaf3rand

eaf3rand2#

你不能包含Domain1。它应该看起来像这样:

Redirect 301 /menu1/ Domain2/menu1/

mod_alias#Redirect的文档说:
然后,任何以URL-path开头的请求将返回一个重定向请求到目标URL的位置。除了匹配的URL-path之外的其他路径信息将被附加到目标URL。
第一条规则也会匹配所有你希望第二条规则适合的情况,所以第二条规则永远不会匹配。
要激活第二条规则(具有更深的路径)而不是第一条规则,您必须交换顺序:

Redirect 301 /menu1/submenu1 Domain2/menu2
Redirect 301 /menu1/ Domain2/menu1/

像这样,不太深的一个将匹配不匹配更深的一个的所有拟合情况。

相关问题