正则表达式 - 如何匹配除特定模式之外的所有内容

Ala*_*ain 6 regex ssl apache-config

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

所以我在常规的http虚拟主机中有以下行:

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

基本上取而代之的是1美元.

它完美地运作.但现在,我需要访问不能在SSL虚拟主机上的特定CGI.所以我想重定向所有请求,除了以下内容:

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

我在这个论坛上搜索并发现了一些关于正则表达式排除的帖子,但没有一个有效.任何帮助将不胜感激.

谢谢.阿兰

Tre*_*ner 3

Apache 2.2 及更高版本在正则表达式中支持负前瞻。如果您使用 Apache 2.2 或更高版本,这应该可以工作:

RedirectMatch ^/(?!mycgi/cgi.php)(.*) https://www.mydomain.com/$1
Run Code Online (Sandbox Code Playgroud)