2012-01-03 71 views
3

我试图重定向除了那些以特定路径开头的所有请求。Apache重写所有的URL,除了那些以特定路径开头的URL

例如,

http://www.example.com/mypath1应该重定向

http://www.example.com/mypath2不应重定向

其他的一切应该重定向

到目前为止,香港专业教育学院试图让它工作只使用其中一个异常路径lik E本:

RewriteRule ^(?!/mypath1/).*$ http://www.google.com/? [R=301,L] 

像这样:

RewriteCond %{REQUEST_URI} !^/mypath1/.* [NC] 
RewriteRule ^.*$ http://www.google.com/? [R=301,L]` 

像这样:

RewriteCond %{REQUEST_FILE} !^/mypath1/.* [NC] 
RewriteRule ^.*$ http://www.google.com/? [R=301,L] 

不过一切我尝试只是重定向所有请求。 有谁知道如何做到这一点?

+1

当我将第二条规则(与REQUEST_URI)放在我的虚拟主机配置文件中并且它按预期工作时。你确定在某个地方没有其他的规则会干扰吗? – 2012-01-03 19:06:19

回答

1

我已经设法解决了这个问题,我正在做的请求被稍后在apache配置中重定向到一个错误页面,然后被捕获所有重定向。

如果其他人有类似的问题,我建议使用Apache RewriteLog,因为这有助于查明问题。要做到这一点,只需在您的VHOST中添加此项:

RewriteEngine on 
RewriteLog "C:/devenv/Apache2/logs/rewrite.log" 
RewriteLogLevel 2