正则表达式不等于3个字符串

时间:2014-12-10 10:54:43

标签: regex apache mod-rewrite regex-negation

我已经看过Regex not equal to stringRegular expression for a string that does not start with a sequence,但我找不到正则表达式的正确解决方案。

我需要这样做:“如果我的主机不是以eiter smwww之类的(s.example.whateverm.example.whateverwww.example.whatever)然后将其重定向到www.example.whatever

像这样:

RewriteCond %{HTTP_HOST} ((.+)\.)+example\.(.+)$
RewriteCond %2 ^(?!s|m|www$)
RewriteRule (.*) http://www.example.com$1 [R=301,QSA,L]

https://regex101.com/多次尝试后无效 我错过了什么?

1 个答案:

答案 0 :(得分:1)

您可以在RewriteCond中使用否定:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^(s|m|www)\. [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301,NE,L]