HTACCESS - 排除某些域名

时间:2013-12-24 11:34:31

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

我已经重写cond,就像这样

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

我发现代码在互联网的某个地方,我还没有自己编写。 它的作用是将我所有的子域名重定向到www.bamse.ba,hello.bamse.ba到bamse.ba。

公平的。这是正常的,因为它应该但问题是我使用timthumb.php脚本,它加载来自images.anka.com的所有图像

现在的问题是,如果我启用了重写规则,我的所有图像都是从bamse.ba而不是images.anka.com

加载的。

我如何排除域images.anka.com它不是重写规则的一部分。 有什么想法吗?

1 个答案:

答案 0 :(得分:4)

严格地说,答案已经在你的问题中了。如果您查看第一个RewriteCond,您会发现它会将%{HTTP_HOST}!^bamse\.ba$进行比较。 !取消了结果,因此只有当%{HTTP_HOST} 等于bamse.ba时,此部分才会生效。这听起来与我们想要在这里完成的事情非常相似。要排除images.bamse.ba,我们只需要添加另一个RewriteCond

RewriteCond %{HTTP_HOST} !^images\.bamse\.ba$ [NC]
RewriteCond %{HTTP_HOST} !^bamse\.ba$ [NC]
RewriteRule ^(.*)$ http://bamse.ba/$1 [R=301,L]

在可见任何更改之前,您可能需要清除缓存。为了提高效率,浏览器可以缓存像这样的永久重定向,跳过一个或多个请求到服务器。