Apache RedirectMatch除单个URI外

时间:2014-05-06 13:52:05

标签: regex ssl apache2 mod-alias

我正在尝试设置apache RedirectMatch以将所有流量从一个虚拟主机发送到另一个虚拟主机(标准启用SSL)但是,由于该网站的中文版本中的某些内容,(YouKu视频没有SSL)嵌入支持)我必须在非ssl虚拟主机上维护中文版本(/zh)。

所以我的目标是重定向来自非ssl的所有流量,使用RedirectMatch否定/ zh,如下所示:

RedirectMatch ^/([^zh]{0,2}.*) https://domain.com/$1

然后在SSL vhost上将/ zh上的任何内容重定向到非ssl,如下所示:

RedirectMatch ^/(zh.*) http://domain.com/$1

然而,这似乎给了我一个重定向循环..我认为非ssl正则表达式有问题,但我无法理解。

非常感谢任何帮助或其他建议。

干杯!

修改

我现在甚至为此尝试了mod_rewrite:

非SSL -

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/zh
RewriteRule ^(.*)$ https://domain.com$1 [R=301,L]

SSL -

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/zh
RewriteRule ^(.*)$ http://domain.com$1 [R=301,L]

然而,这是将/ zh重定向到https://domain.com/index.php:S对此非常困惑。

0 个答案:

没有答案