301将域子文件夹重定向到子域子文件夹

时间:2018-06-28 作者:Godwin Alex Ogbonda

我有一个域和子域example.commusic.example.com 它们都在根目录中/public_html

我想重定向example.com/music/end/music.example.com/music/end/但由于它们都在根目录中,这给了我重定向错误。

请问我有没有办法从旧url重定向到新url而不出错

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

如果主域和子域都指向文件系统上的同一目录,则需要使用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]
这与您问题中所述的“期望的”重定向有所不同。这本身不应导致重定向循环。

结束

相关推荐

正在忽略.htaccess重写器规则-正在键入以删除WP帖子中的日期

应该是一个相当简单的过程。我已经完成了相当一部分的互联网搜索,但无法在/public\\u html中使用htaccess重写使用VPS Apache服务器,你知道为什么吗?提前感谢您!尝试旧的RedirectMatch 301和mod\\u rewrite RewriteRuleas(一次一个),如下所示:# New Post URLs, without dates, requires redirects for old links. RedirectMatch 301 ^/([0-9]+)/(