我正在尝试重定向来自.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]
答案 0 :(得分:1)
由于我不确定哪条规则确实产生了重写循环,我现在只能建议这种方法:
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.to [NC]
RewriteCond %{REQUEST_URI} !^/foo/bar
RewriteRule ^.*$ /foo/bar [L]
由于两个原因,您的尝试在技术上并不正确:
$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]