0
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]

这就是 www/non www 重定向

这是我的维护页面

ErrorDocument 503 /system/maintenance.html
RewriteEngine On
RewriteCond %{REQUEST_URI} !.(css|gif|jpg|png)$
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$  -  [redirect=503,last]

谢谢!

4

1 回答 1

1

这取决于您要首先应用哪一个以及是否RewriteBase可以将其应用于两组规则(我假设它可以,因为第二条规则并不真正关心基础是什么)。您还可以删除重复的RewriteEngine On指令:

# this is more or less something separate from rewrite engine
ErrorDocument 503 /system/maintenance.html

# turn on the rewrite engine
RewriteEngine On
RewriteBase /

# do www to non-www redirect
RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC]
RewriteRule ^(.*)$ http://yourdomain.com/$1 [L,R=301]

# Handle maintenance
RewriteCond %{REQUEST_URI} !.(css|gif|jpg|png)$
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$  -  [redirect=503,last]

此顺序意味着即使维护,www 到非 www 仍然会发生。如果它们是相反的方式,无论主机名是 www 还是非 www,您都会得到维护处理。

于 2012-07-25T00:55:01.043 回答