我正在使用Apache,我想将所有收到的请求重定向到ssl虚拟主机。

因此,我在常规的http虚拟主机中有以下一行:

RedirectMatch(。*)https://www.mydomain.com $ 1

基本上将$ 1替换为所有内容。

它完美地工作。但是现在,我需要访问不能在SSL虚拟主机上的特定CGI。因此,我想重定向所有请求,但以下情况除外:

http://www.mydomain.com/mycgi/cgi.php

我在这个论坛上进行了搜索,发现了一些有关正则表达式排除的帖子,但是没有一个起作用。任何帮助将不胜感激。

谢谢。
阿兰

最佳答案

Apache 2.2及更高版本在正则表达式中具有负面的超前支持。如果您使用的是Apache 2.2或更高版本,则应该可以:

RedirectMatch ^/(?!mycgi/cgi.php)(.*) https://www.mydomain.com/$1

关于正则表达式-如何匹配除特定模式以外的所有内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2716568/

10-13 09:43