Regex Apache重定向匹配,但单个URI除外

Regex Apache重定向匹配,但单个URI除外,regex,ssl,apache2,mod-alias,Regex,Ssl,Apache2,Mod Alias,我正在尝试设置apache RedirectMatch,以将所有流量从一个虚拟主机发送到另一个启用SSL的标准。但是,由于网站中文版上的某些内容,优酷视频没有SSL嵌入支持,我必须在非SSL虚拟主机上维护中文版/zh 因此,我的目标是重定向来自非ssl的所有流量,使用RedirectMatch否定/zh,如下所示: 重定向匹配^/[^zh]{0,2}.*https://domain.com/一美元 然后在SSL vhost上将/zh上的任何内容重定向回非SSL,如下所示: 重定向匹配^/zh.*

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

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

重定向匹配^/[^zh]{0,2}.*https://domain.com/一美元

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

重定向匹配^/zh.*http://domain.com/一美元

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

如有任何帮助或其他建议,将不胜感激

干杯

编辑

我现在甚至尝试过这样的mod_重写:

非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重定向到:It’这让我很困惑。

我想你想要[^z][^h].*首先,我不确定你要求的其他内容。这现在没有给我重定向循环,但它仍然重定向到https://domain.com/index.php .. 奇怪的是。另外,在一个类中否定2个字符与否定2个字符有什么区别?!这不是你想要的,我不认为,它不会匹配hh、zz或hz以及期望的效果。我很惊讶它摆脱了重定向循环。。。你能更清楚地解释一下你所说的“它仍在重定向到…”的意思吗。。。它在哪种情况下这样做?Just/zh现在正在重定向到domain.com/index.php-这必须与.htaccess有关,尽管这是使用重写,并且不应该产生到服务器的外部重定向。