【发布时间】:2018-08-01 17:10:11
【问题描述】:
例如:
如果子域 URL 不是 www.domain.com/something 而是类似:
sub.domain.com/something 然后将其重定向到 sub.new-domain.com/something
对我来说,诀窍是 (a) 仅在不是 www 时重定向,以及 (b) 重定向到相同的子域和路径,但在新域上。
【问题讨论】:
例如:
如果子域 URL 不是 www.domain.com/something 而是类似:
sub.domain.com/something 然后将其重定向到 sub.new-domain.com/something
对我来说,诀窍是 (a) 仅在不是 www 时重定向,以及 (b) 重定向到相同的子域和路径,但在新域上。
【问题讨论】:
尝试使用此规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} !www\. [NC]
RewriteRule ^(.*)$ http://sub.new-domain.com%{REQUEST_URI} [L,R=301]
条件检查 URL 是否没有 www。如果是这样,那么它将不会继续进行。
如果输入了 URL http://sub.domain.com/something,它将更改为 http://sub.new-domain.com/something。但如果 URL 是 http://www.sub.domain.com/something,则规则不会通过。
确保在测试之前清除缓存。
// 根据评论编辑 //
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteCond %{HTTP_HOST} !www\. [NC]
RewriteRule ^(.*)$ http://%1.new-domain.com%{REQUEST_URI} [L,R=301]
根据您的评论,我现在更新了规则。这现在包括两个条件,第一个获取您的随机子域,第二个条件是检查是否存在 www。
重写中使用的%1 抓取随机子域并将其附加到新 URL。
【讨论】: