【问题标题】:Using htaccess, how to redirect all sub-domain URLS that are not www to same sub-domain URL on new domain?使用 htaccess,如何将所有不是 www 的子域 URL 重定向到新域上的相同子域 URL?
【发布时间】:2018-08-01 17:10:11
【问题描述】:

例如:

如果子域 URL 不是 www.domain.com/something 而是类似:

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

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

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    尝试使用此规则:

    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。

    【讨论】:

    • 感谢您的回答。我应该澄清子域是动态的。有几十个不同的子域,所以无论哪个被访问都需要动态重定向到相同的子域和路径,但在新的域名上。
    • 抱歉@quantumized 回复晚了!请根据您的评论尝试我的编辑。这应该完全符合您的需要:)
    • 非常感谢!您的解决方案完美运行。我绞尽脑汁试图通过反复试验让它工作 - 没有运气。
    • 没问题,我很高兴能帮上忙 :) htaccess 有时会有点像噩梦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 2015-07-17
    • 2022-07-07
    • 2019-12-20
    • 1970-01-01
    相关资源
    最近更新 更多