将特定的通配符子域重定向到另一个域的特定URL

时间:2019-03-12 06:29:09

标签: .htaccess

我想将特定的通配符子域重定向到另一个域的特定url。这两个域都在同一服务器/ public_html上,并将通配符子域的所有内部页面重定向到另一个域的内部页面。

例如

music.example.com重定向到stackoverflow.com/music/

music.example.com/happy-birthday/重定向到stackoverflow.com/happy-birthday

music.example.com/sing-to-you/重定向到stackexchange.com/sing-to-you/

我的帖子超过10万,因此我无法使用.htaccess一一进行内部页面的重定向

请帮帮我

我尝试了以下代码

RewriteCond %{HTTP_HOST} ^(music.example.com) [NC] RewriteRule ^()$ https://www.stackoverflow.com/music/ [R=301,L]

,但是它只会将首页重定向到我想要的特定网址,但其余网址是主要问题,如果我使用普通的域名重定向,则它适用于其余网址,但上面的代码将停止工作

以下是正常域重定向重定向的以下代码

RewriteCond %{HTTP_HOST} ^music\.domain.com\.com [NC] RewriteRule ^(.*)$ https://wwww.stackoverflow.com/$1 [L,R=301,NC]

1 个答案:

答案 0 :(得分:1)

我使用了下面的htaccess代码,它运行良好。

RewriteEngine On

# "music.example.com/" to "another.example/music/"
RewriteCond %{HTTP_HOST} ^music\.example\.com [NC]
RewriteRule ^$ https://another.example/music/ [R=302,L]

# "music.example.com/<something>" to "another.example/<something>"
RewriteCond %{HTTP_HOST} ^music\.example\.com [NC]
RewriteRule (.+) https://another.example/$1 [R=302,L]

RewriteCond(条件)指令检查请求的主机。 RewriteRule自然会重定向到另一个域。在第二条规则中,来自请求的URL路径是在$1反向引用中捕获的。