我在Apache 2.2.15上具有多域/多语言构造,可将请求代理到https://www.domain.de。 正常,除了我要重定向到主域。
我想将https://www.domain.cn/de/重定向到https://www.domain.de/de/。
mod_rewrite规则工作正常,日志告诉我,mod_rewrite希望重定向到正确的URL。 由于ProxyPassReverse会覆盖位置,因此也会覆盖重定向的位置。因此,
除了重定向之外,我需要ProxyPassReverse进行所有操作。我该怎么办?
我可以向mod_rewrite规则添加环境变量(“ E:redirected”)。但是当我使用ProxyPassReverse时如何检查?
我不能使用no-proxy,因为它在Apache 2.4.26及更高版本中可用
虚拟主机
<VirtualHost *:443>
SSLEngine on
ServerName www.domain.cn
# Proxy startpage to /zh/
ProxyPassMatch "^/$" https://www.domain.de/zh disablereuse=on
# Proxy all other URLs completely
ProxyPass / https://www.domain.de/ disablereuse=on
ProxyPassReverse / https://www.domain.de/
</VirtualHost>
mod_rewrite规则
RewriteCond %{HTTP:orig-host} www\.domain\.cn$ [NC]
RewriteCond %{REQUEST_URI} ^/de/$ [NC]
RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{REQUEST_URI}?%{QUERY_STRING} ^/(.*)$ [NC]
RewriteRule ^.*$ http://www.domain.de/de/ [R=301,L,NE]