如何mod_rewrite使用.htaccess代理除基本路径之外的所有路径

时间:2013-08-13 15:03:54

标签: apache mod-rewrite

我正在尝试使用mod_rewrite为我的网站编写一些代理重写规则,但无法使其工作。请帮忙,mod_rewrite专家。

我需要将所有子路径代理到外部服务器,同时保留URI,但我不想重写基本路径/。

我不知道子路径的名称,我希望它被视为通配符    / [/ [/ * ...]]

  • www.domain.com/ - > www.domain.com/index.php
  • www.domain.com/xxx/ - > www.external-server.com/xxx /
  • www.domain.com/xxx/yyy/ - > www.external-server.com/xxx/yyy /
  • www.domain.com/xxx/yyy/zzz/ - > www.external-server.com/xxx/yyy/zzz /

我可以轻松地在所有URI上代理调用:

RewriteEngine On 
RewriteRule (.*) http://www.external-server.com/$1 [P,QSA]

任何人都知道一套有效的规则和cond支持我的用例吗?

提前致谢!//    Edsh

1 个答案:

答案 0 :(得分:0)

如果我正确理解你,这样的事情对你有用。

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/
RewriteRule (.*) http://www.domain.com/index.php [L,P,QSA]

RewriteCond %{REQUESTURI} !^/
RewriteRule (.*) http://www.external-server.com/$1 [P,QSA]