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

标签 regex ssl apache-config

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

相关文章:

java - Ctrl-M 的正则表达式问题

php - 如何在 Laravel 5.4 中验证文件名

php - 如何从 PHP 中的文本中删除空行?

c - 参数列表太长 libcurl c 程序错误

apache2 - 配置apache监听80以外的端口

python - nvda 的正则表达式在所有大写字母之间放置空格?

ios - UIWebView+AF联网问题

node.js - AWS 证书 "not safe",即使所有数据都通过 HTTPS 提供

reactjs - 有没有办法将 Apache 配置为自动识别 Django 与 React 的 URL,而无需对每个端点进行硬编码?

ruby-on-rails - 如何通过 cPanel 在共享主机上部署 Ruby on Rails 应用程序?