Apache 从重写条件中排除子域
我没有找到一个线程具有与当前相同的Apache 从重写条件中排除子域,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我没有找到一个线程具有与当前相同的RewriteCond My root.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
My root.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
,因此需要排除此子域
如何做到这一点?添加这一行:
RewriteCond %{HTTP_HOST} !^sub\. [NC]
之前:
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+) [NC]
RewriteRule ^(.*) http://www.%1/$1 [R=301,NE,L]
清除缓存并尝试使用其他浏览器谢谢,但是,对于以前访问过我的网站的访问者,我能做些什么?我无法让他们清除缓存。或者因为它是一个新的子域,所以只有我的浏览器缓存了它,因为在新的重写之前我尝试访问
sub.mydomain.com
?如果有多个子域呢?我只是在问。在新规则出台之前,这只是你的缓存有问题。对于多个子域,如果你不想全部提及,那就更复杂了。为此提出新问题。