0

この表現を短くするには?2行を使用する代わりに、mysite.comとは異なるドメイン、たとえばmysite.orgまたはwww.mysite.orgをwwwとリダイレクトの有無にかかわらずチェックするだけです。

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^mysite\.org$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.org$ [OR]
RewriteCond %{HTTP_HOST} ^mysite\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.net$

RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]

また、[OR]を使用するか、このようにする方が速いですか

  RewriteCond %{HTTP_HOST} ^www\.mysite\.com$
    RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^mysite\.org$
    RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^www\.mysite\.org$
    RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^mysite\.net$
    RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L]

PS なぜこれは [NC] を使用しない場合でも大文字と小文字を区別しないのですか?

4

1 に答える 1

0

正規のホスト名に関するApacheのドキュメントを確認することをお勧めします。ルールは否定として表現できます

RewriteEngine On
RewriteCond %{HTTP_HOST}    !^mysite\.com$ [NC]
RewriteCond %{HTTP_HOST}    !^$
RewriteRule ^(.*)$  http://mysite.com/$1 [L,R=301]

また、 [NC] なしで一致するルールについては、おそらくブラウザがサーバーに送信するものに依存します。

于 2012-04-28T08:25:15.837 に答える