2

古いドメインをすべて新しいドメインにリダイレクトする方法を探しています。

基本レベルでリダイレクトされているようですが、サブカテゴリまたはパーマリンクになると、リダイレクトはまったく機能しません。

    Options +FollowSymLinks 
    RewriteEngine on

    RewriteCond %{HTTP_HOST} (www\.)?mydomain1\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain2\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain3\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain4\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain5\.com$ [NC]
    RewriteCond %{HTTP_HOST} (www\.)?mydomain6\.com$ [NC]

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

基本レベルのリダイレクトは問題ありません:mydomain1.com/graph.php => mydomain7.com

ただし、このレベルでも同じページにリダイレクトすることはできません

そしてもっと重要なのはperm-links:

mydomain1.com/users/13/James=>リダイレクトなし

4

2 に答える 2

8

最もクリーンな解決策は、www.mydomain7.com以外のドメインをリダイレクトすることです。

RewriteCond %{HTTP_HOST} !^www\.mydomain7\.com$ [NC]
RewriteRule ^(.*) http://www.mydomain7.com/$1 [L,R=301]
于 2012-05-17T21:06:59.703 に答える
2

%{HTTP_HOST}すべてのRewriteCondはデフォルトでANDで結合されているため、の値を同時にすべてのドメインにすることはできないため、ルールは機能しません。

Gerbenによって提案された否定を使用するか、次のようにコードを書き直してください。

RewriteCond %{HTTP_HOST} ^(www\.)?(mydomain1|mydomain2|mydomain3|mydomain4|mydomain5|mydomain6)\.com$ [NC]
RewriteRule ^ http://www.mydomain7.com%{REQUEST_URI} [L,R=301]
于 2012-05-17T21:29:57.843 に答える