6

次の方法で .htaccess を使用してリダイレクトしようとしています。私は .htaccess にあまり詳しくないので、それができるかどうかわかりません。また、私が意図している方法が SEO のベスト プラクティスに従っているかどうかもわかりません。

www.domain.com                > domain.com 301

ks.domain.com                 > kansas.domain.com 301

ia.domain.com                 > iowa.domain.com 301

domain.com/sites              > domain.com 301

domain.com/sites/iowa         > iowa.domain.com 301

nonexistent.domain.com        > domain.com 302

domain.com/sites/nonexistent  > domain.com 302

私の最大の疑問は、存在しないサブドメインを検出してリダイレクトできるかどうかです。上記のすべてがどのように達成されるかを確認したいと思います。

4

2 に答える 2

7

*最初に、 Web ホストで許可されている場合にのみ、名前にを含むサブドメインを作成して、ワイルドカード サブドメインを追加する必要があります。そして、これはあなたのにある必要があります.htaccess。それが機能するかどうかをテストしてみてください:

Options +FollowSymlinks
RewriteEngine on

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

RewriteCond %{HTTP_HOST} ^ks\.domain\.com
RewriteRule ^(.*)$ http://kansas.domain.com/$1 [R=301]

RewriteCond %{HTTP_HOST} ^ia\.domain\.com
RewriteRule ^(.*)$ http://iowa.domain.com/$1 [R=301]

RewriteCond %{HTTP_HOST} ^domain\.com
RewriteCond %{REQUEST_URI} ^/sites/?$
RewriteRule ^(.*) / [R=301]

RewriteCond %{HTTP_HOST} ^domain\.com
RewriteCond %{REQUEST_URI} ^/sites/iowa/?$
RewriteRule ^(.*) http://iowa.domain.com/ [R=301]

RewriteCond %{HTTP_HOST} ([a-z0-9-]+)\.domain\.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) http://domain.com/ [R=302]

RewriteCond %{HTTP_HOST} ^domain\.com
RewriteCond %{REQUEST_URI} ^/sites/([a-z0-9-_]+)/?
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*) http://domain.com/ [R=302]

-f要求されたファイルが存在し、通常のファイルである-sかどうか、ファイル サイズが 0 より大きいかどうか、存在し、ディレクトリであるかどうかをテストするために使用-dします。

于 2013-04-04T05:25:18.953 に答える