1

私はこのセットアップを持っています:

http://example.com
http://www.example.com

http://www2.example.com

ホームページを除くすべてのページを最初のセットから新しい (www2) ドメインにリダイレクトしたいと考えています。

これが私の.htaccessにあるものです:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !www2.example.com$ [NC]
    RewriteRule ^(.*)$ http://www2.example.com/$1 [L,R=301]
</IfModule>

これは機能しますが、ホームページを除外したいです。そのための追加条件を追加するにはどうすればよいですか?

編集:また、「assets」というフォルダーとそのすべての内容を除外したいと思います。

4

1 に答える 1

1

正規表現を に変更できます。これは、少なくとも 1 つ以上の.+を意味します。ここで、は何でもかまいません:..

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !www2.example.com$ [NC]
    RewriteRule ^(.+)$ http://www2.example.com/$1 [L,R=301]
</IfModule>

ここでの理由は、ホームページ (request URI = /) ではスラッシュが取り除かれ、実際には.*一致する空の文字列になるからです。ただし、 がある場合.+、空の文字列 (ホームページ) は一致しません。

/ホームページが(など)以外のものである場合は、次のように/home.html除外できます。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/home\.html
    RewriteCond %{HTTP_HOST} !www2.example.com$ [NC]
    RewriteRule ^(.*)$ http://www2.example.com/$1 [L,R=301]
</IfModule>
于 2013-11-10T18:04:42.057 に答える