如果主域和子域都指向文件系统上的同一目录,则需要使用mod\\u rewrite条件检查请求的主机。
因此,例如,以下指令应该在WordPress前端控制器之前执行(即# BEGIN WordPress
第节):
RewriteCond %{HTTP_HOST} ^(example\\.com) [NC]
RewriteRule ^(music/end/)$ http://music.%1/$1 [R=301,L]
在
RewriteRule
<替换只是为了防止重复。
%1
是对上次匹配的CondPattern中捕获的组的反向引用(即。
example.com
) 和
$1
是对中捕获的组的反向引用
RewriteRule
图案(即。music/end/
).您需要使用mod\\u rewrite(而不是mod\\u别名Redirect
) 因为您很可能有与WordPress关联的现有mod\\u rewrite指令,否则可能会有冲突。此外,你不能检查Host
标题使用mod\\u别名。
测试之前,您需要清除浏览器缓存。
UPDATE: 从您的评论中。。。
RewriteRule ^ng-music/(.*) https://music.example.com/music/$1 [R=301,L]
这与您问题中所述的“期望的”重定向有所不同。这本身不应导致重定向循环。