【问题标题】:Forward non-www to www except for specific subdomain将非 www 转发到 www,特定子域除外
【发布时间】:2015-05-03 19:22:10
【问题描述】:

我正在使用 RewriteCondRewriteRule 将所有非 www 请求路由到 www 域:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]

但是我想排除一个特定的子域,例如blog.mydomain.tld。为了实现这一点,我必须如何修改我的条件和规则?

【问题讨论】:

    标签: .htaccess mod-rewrite subdomain


    【解决方案1】:

    您可以在 RewriteCond 的正则表达式中添加该子域:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^(www|blog)\. [NC]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L,NE]
    

    【讨论】:

    • 感谢您的帮助(再次)!我要奖励@Lepanto,因为他还在低代表区。
    • 当然这是您的特权,但应该避免使用相同变量的重复条件,以提高规则执行的整体效率。请记住,这些规则会针对每个 Web 请求进行解析和执行。
    【解决方案2】:

    您是否尝试添加

    RewriteCond %{HTTP_HOST} !^www\.    
    RewriteCond %{HTTP_HOST} !^blog\.
    RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]
    

    【讨论】:

      猜你喜欢
      • 2020-11-09
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多