使用htaccess,如何将所有非www的子域URL重定向到新域上的相同子域URL?

时间:2018-08-01 17:10:11

标签: .htaccess redirect

例如:

如果子域URL不是www.domain.com/something,而是类似以下内容:

sub.domain.com/something,然后将其重定向到sub.new-domain.com/something

对我来说,诀窍是(a)仅在不是www的情况下重定向,以及(b)在新域上重定向到相同的子域和路径。

1 个答案:

答案 0 :(得分:0)

尝试使用此规则:

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。