所有与特定服务器别名一起提交的请求的redirect规则

我想写一个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)!)