0

古いサイトを新しいドメインに移動しており、.htaccess ファイルで適切な 301 リダイレクトを作成して、以下の種類のリダイレクト ルールに対応しようとしていますが、困惑していると思います。

new.com     --> new.com/main
www.new.com --> new.com/main

old.com     --> new.com/main
www.old.com --> new.com/main

old.com/*   --> new.com/*
www.old.com/*   --> new.com/*

sub.old.com/*   --> sub.new.com/*

最初の部分では、次のコードが機能しているようです。

# RewriteCond %{HTTP_HOST} ^new\.com$ [OR]
# RewriteCond %{HTTP_HOST} ^www\.new\.com$
# RewriteRule ^/?$ "http\:\/\/new\.com\/main" [R=301,L]
# RewriteRule ^$ http://www.new.com/main [R=301,L]

簡単に言えば、ブラウザーが old.com ドメインのホームページ以外のページを要求した場合、new.com に移動するようにしたいと考えています。誰かが new.com にアクセスすると、/main フォルダーにリダイレクトされます。ただし、誰かが明示的に new.com/main にアクセスした場合、無限リダイレクトに陥るのではないかと心配しています。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これは で必要なコードDOCUMENT_ROOT/.htaccessですnew.com:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?new\.com$ [NC]
RewriteRule ^$ http://new.com/main [R=301,L]

これは で必要なコードDOCUMENT_ROOT/.htaccessですold.com:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteRule ^$ http://new.com/main [R=301,L]

RewriteCond %{HTTP_HOST} ^(www\.)?old\.com$ [NC]
RewriteRule ^(.+)$ http://new.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^([^.]+)\.old\.com$ [NC]
RewriteRule ^$ http://%1.new.com/main [R=301,L]

RewriteCond %{HTTP_HOST} ^([^.]+)\.old\.com$ [NC]
RewriteRule ^(.+)$ http://%1.new.com/$1 [R=301,L]
于 2013-09-03T21:22:52.753 に答える