Mod重写不是来自我的域和子域的所有流量

时间:2010-05-21 15:44:21

标签: apache mod-rewrite dns subdomain

此时我服务器上的每个站点都在域“mydomain.com”或“subdomain.mydomain.com”上,我会根据用于访问站点的子域进行各种重写。

我现在要做的是,不是从我的域或子域发送任何请求到脚本处理......听起来很简单,但我无法让它工作..

这就是我所拥有的:

RewriteEngine on
RewriteCond %{ENV:Rewrite-Done} !^Yes$
RewriteCond %{HTTP_HOST} !^(.*)\.mydomain\.com
RewriteRule (.*) /_testing/htaccess/off.php?$1

它正确地允许我的域或子域上的任何流量通过,但在重写时会出现500内部服务器错误。我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:0)

尝试此规则:

RewriteCond %{HTTP_HOST} !^(.+\.)?example\.com$
RewriteCond $1 !=/_testing/htaccess/off.php
RewriteRule (.*) /_testing/htaccess/off.php?$1

答案 1 :(得分:0)

事实证明,htaccess规则无限期地重定向。这是因为我的处理程序脚本位于/ htaccess /目录中。

我已将处理程序文件移到另一个位置,现在可以使用了:

RewriteEngine on
RewriteCond %{ENV:Rewrite-Done} !^Yes$
RewriteCond %{HTTP_HOST} !^(.+\.)?example\.com$
RewriteRule (.*) /_testing/get.php?http_host=%{HTTP_HOST}