我有一个系统,其中多个域共享一个htaccess . 在片刻,我使用以下内容将所有非www请求重定向到www .
RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
现在唯一的问题是我根本无法使用子域名,因为sub-domain.myhost.com将被重定向到www.sub-domain.myhost.com .
是否有一种方法可以使上述规则例如排除以'sub-'开头的所有请求?而不是重定向到www .
更新:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(?!(?:sub-|www)\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
在我的.htaccess中只有上述5行会抛出“500 - 内部服务器错误” .
1 回答
试试这个简单的调整:
Explanation
^
锚断言我们在字符串的开头否定前瞻
(?!(?:sub-|www))
断言以下内容不是sub-
或www
.