4

私は次の.htaccessコードを持っています:

<IfModule mod_rewrite.c>

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

</IfModule>

問題は、すべてのサブドメインがwww.mysite.co/subdomainにリダイレクトされることです。どうすればこれを回避できますか?

4

2 に答える 2

3

平たく言えば、書き換えルールのロジックは次のことを行っています。

  1. www.mysite.co 以外の任意のホスト(foo.mysite.com、blog.mysite.com などを含む) の場合
  2. http://www.mysite.co/への永続的なリダイレクト (301)
  3. これは .htaccess ファイルをチェックインする最後のルールなので、救済します

独自のサブドメインをリダイレクトしないようにするための最も簡単で明確な方法は、より多くの書き換え条件で明示的に処理することです (以下の例を参照)。よりカンフーな htaccess の楽しみを得るには、これを試してください: .htaccess ワイルドカード サブドメイン

<IfModule mod_rewrite.c>

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

 </IfModule>
于 2012-07-24T13:22:31.667 に答える