我想写一个redirect规则,将发送所有传入的请求针对给定的服务器别名。 以下是我的.conf文件的样子。 我遇到与foo.com相关的第一条规则问题。 重写带有别名foo.com的请求根本不会发生。 我甚至不知道如何debugging这个…
NameVirtualHost xxx.xx.x.194 <VirtualHost xxx.xx.x.194> ServerName foo.com ServerAlias www.foo.com RewriteEngine on RewriteRule ^(.*)$ /cgi-bin/redirect.py?url=spencer [L,QSA,PT] SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 </VirtualHost> <VirtualHost xxx.xx.x.194> ServerName bar.com ServerAlias www.bar.com Include /etc/httpd/conf.d/zumodo.common ErrorLog logs/zumodo_errors_log CustomLog logs/zumodo_log combined SetEnv force-proxy-request-1.0 1 SetEnv proxy-nokeepalive 1 </VirtualHost>
尝试
RewriteRule /?(.*) /cgi-bin/redirect.py?url=spencer [L,QSA,PT]
要进行debugging,请尝试添加:
RewriteLog "/var/log/apache2/rewrite.log" RewriteLogLevel 3
这条规则:
RewriteRule ^(.*)$ /cgi-bin/redirect.py?url=spencer [L,QSA,PT]
意味着:“将所有请求redirect到/cgi-bin/redirect.py?url=spencer ”
这是你真正想要做什么?
如果不是,请给出两个inputURL的例子以及它们应该如何转换。
无论如何,这里是我的2个平常的提示:
请尝试使用RewriteLog指令:它可以帮助你追踪这样的问题:
# Trace: # (!) file gets big quickly, remove in prod environments: RewriteLog "/web/logs/mywebsite.rewrite.log" RewriteLogLevel 9 RewriteEngine On
我最喜欢的工具来检查正则expression式:
http://www.quanetic.com/Regex (不要忘了selectereg(POSIX)而不是preg(PCRE)!)