使用.to域添加RewriteCond时获取错误500

时间:2011-09-01 14:49:32

标签: apache .htaccess mod-rewrite

我正在尝试重定向来自.htaccess文件中特定域的流量。它工作正常,除非我为扩展名为.to的域执行此操作。知道这里发生了什么吗?

产生错误500:

RewriteCond %{HTTP_HOST}            ^(www\.)?domain\.to [NC]
RewriteRule ^.*$                    /foo/bar [L]

工作正常:

RewriteCond %{HTTP_HOST}            ^(www\.)?domain\.com [NC]
RewriteRule ^.*$                    /foo/bar [L]

1 个答案:

答案 0 :(得分:1)

由于我不确定哪条规则确实产生了重写循环,我现在只能建议这种方法:

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.to [NC]
RewriteCond %{REQUEST_URI} !^/foo/bar
RewriteRule ^.*$ /foo/bar [L]

由于两个原因,您的尝试在技术上并不正确:

    .htaccess URL中的
  • 将没有前导斜杠(我指的是$1);
  • 您正在使用$1 ..但您没有匹配的群组设置(换句话说,$1将始终为空)。

如果仍然没有 - 请提供真正的htaccess ...或尝试启用重写调试RewriteLogLevel 9) - 但为此你必须完全控制Apache服务器,如此指令不能放在.htaccess(只有服务器配置/虚拟主机上下文)+你需要重启Apache才能重新读取配置文件。


尝试在顶部的某处添加此规则 - 适当的位置:

# do not do anything for already existing files
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]