【问题标题】:Exclude subdomain from Rewritecond从 Rewritecond 中排除子域
【发布时间】:2016-09-26 11:37:18
【问题描述】:

我没有找到与我目前拥有的 RewriteCond 相同的线程。

我的根.htaccess 设置如下,因此它会重定向并自动将www 添加到任何不包含www 的URL:

Options -Indexes

RewriteEngine on

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

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_USER_AGENT} ^(BadBot1|BadBot2) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule ^.* - [F,L]

但是,我希望用户能够访问子域 - sub.mydomain.com,因此需要排除此子域。

怎么做?

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    添加这一行:

    RewriteCond %{HTTP_HOST} !^sub\. [NC]
    

    之前:

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

    【讨论】:

    • 清空缓存,换其他浏览器试试
    • 谢谢,但是,我可以对以前访问我网站的访问者做些什么?我无法让他们清除缓存。还是因为它是一个新的子域,所以只有我的浏览器缓存了它,因为我在新的重写之前尝试访问sub.mydomain.com
    • 如果有多个子域怎么办?我只是问。
    • 只是你的缓存有问题,在新规则之前。
    • 对于多个子域,如果您不想全部提及,则会更加复杂。为此提出新问题。
    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2015-11-29
    • 2019-08-19
    • 2014-10-24
    相关资源
    最近更新 更多