重写规则以在更改目录时重定向到另一个端口

时间:2016-10-05 13:23:28

标签: apache .htaccess mod-rewrite url-rewriting mod-proxy

目前,我有一个重写规则如下。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^_escaped_fragment_= [NC]
RewriteRule ^ http://localhost:8082%{REQUEST_URI} [L,P]

在此重写规则中,如果我发送的网址如下所示_escaped_fragment_=

http://localhost:8080/web/?_escaped_fragment_=/privacy

将URL重定向到另一个端口(8080到8082),如下所示,

http://localhost:8082/web/?_escaped_fragment_=

我现在要做的是,修改此重写规则以从URL中删除/web并重定向到新端口(8080到8082),如果URL中包含_escaped_fragment_=。例如,如果我的网址如下,

http://localhost:8080/web/?_escaped_fragment_=/privacy

我希望重写此网址,如下面的网址(新网址包含端口8082,新网址中不存在/web),

http://localhost:8082/?_escaped_fragment_=/privacy

这是什么改写规则?

1 个答案:

答案 0 :(得分:0)

您需要匹配实际网址

,而不是使用%{REQUEST_URI}变量
RewriteEngine On
RewriteCond %{QUERY_STRING} ^_escaped_fragment_= [NC]
RewriteRule ^/?(?:web/)?(.+)$ http://localhost:8082/$1?%{QUERY_STRING} [L,P]