Apache重写所有URL,除了那些以某些路径开头的URL

时间:2012-01-03 14:50:30

标签: apache mod-rewrite url-rewriting apache2 httpd.conf

我正在尝试重定向除以某些路径开头的所有请求。

例如,

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

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

其他所有应该重定向

到目前为止,我已经尝试使用这样的一个异常路径来实现它:

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 个答案:

答案 0 :(得分:1)

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

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

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