这个重定向规则有什么问题?

时间:2009-10-23 20:41:12

标签: apache mod-rewrite

RewriteCond %{REQUEST_URI} !^/?cgi-bin/nph-proxy.cgi/000100A/http/
RewriteRule (.*) /cgi-bin/nph-proxy.cgi/000100A/http/$0

我正在尝试重定向

www.myproxysite.com/somedomain.com/somedir/specialchar

www.myproxiste.com/cgi-bin/nph-proxy.cgi/000100A/http/somedomain.com/somedir/specialchar

而是继续

www.myproxiste.com/000100A/http/somedomain.com/somedir/specialchar

当然不起作用。

编辑:我发现当somedomain.com 301 REDIRECTS时,这种现象发生了。

1 个答案:

答案 0 :(得分:1)

试试这个

RewriteCond %{HTTP_HOST} ^(www.)?myproxysite.com$ [NC]
RewriteRule ^(?!/cgi-bin/nph-proxy.cgi/000100A/http)(.*)$ http://www.myproxysite.com/cgi-bin/nph-proxy.cgi/000100A/http/$1 [L,R=301]

其实我真的不知道REQUEST_URI的用法,因为我还没有真正阅读mod重写规则。但根据我所知,我认为上述应该达到你想要的效果。

更新:也许您应该尝试在代码中使用$ 1而不是$ 0.