我正在使用 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/