0

我有重写规则

RewriteRule (/m)?/cia16(.*) $1/cia$2?CIA=16 [QSA]

这工作正常,但问题是它作为多个主机的环境运行,但它只尝试重定向到主主机。例如,这是在 的配置中dev.example.com,但即使您在(具有相同的配置)上,重写也会重定向到dev 。explosion-pills.dev.example.com

我可以解决这个问题:

RewriteRule (/m)?/cia16(.*) http://${HTTP_HOST}$1/cia$2?CIA=16 [QSA]

...但是,这会导致地址栏中的 URL 发生更改,这是不可取的。使用[L]标志也无济于事。

我应该如何指定重写规则以使用当前主机而不更改请求 URL?

4

1 回答 1

1

一种解决方法是mod_proxy在您的 Apache 配置中启用。完成后,在 Rewrite 中使用P(proxy) 标志,如下所示:

RewriteRule (/m/)?cia16(.*) http://%{HTTP_HOST}$1/cia$2?CIA=16 [QSA,L,P]
于 2013-04-23T20:28:27.173 回答