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

www/非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両方のルール セットに適用できるかどうかによって異なります (2 番目のルールはベースが何であるかをあまり気にしないため、適用できると思います)。重複した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 に答える