【问题标题】:Mod Rewrite all traffic not from my domain and subdomainsMod重写不是来自我的域和子域的所有流量
【发布时间】:2011-02-22 10:26:00
【问题描述】:

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

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

这就是我所拥有的:

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

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

【问题讨论】:

  • 日志显示“由于可能的配置错误,请求超出了 10 次内部重定向的限制。如有必要,请使用 'LimitInternalRecursion' 增加限制。使用 'LogLevel debug' 获取回溯。”

标签: apache mod-rewrite dns subdomain


【解决方案1】:

原来 htaccess 规则无限期地重定向。这是因为我的处理程序脚本本身就在 /htaccess/ 目录中。

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

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

【讨论】:

    【解决方案2】:

    试试这个规则:

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

    【讨论】:

    • 嗨,Gumbo,我得到了与我的版本相同的结果,在我的域和子域上工作正常,但是当它应该重写时出现错误 500。我目前正在努力启用日志记录,希望这会产生一些答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 2014-04-24
    相关资源
    最近更新 更多