2

私は3つのドメイン名を持っています:

www.domain1.com
www.domain2.com
www.domain3.com

それらはすべて同じサブフォルダー URL を共有します。

www.domain1.com/sub1/sub2
www.domain2.com/sub1/sub2
www.domain3.com/sub1/sub2

sub2 以下のすべてをサイトのホームページにリダイレクトする必要があります。

www.domain1.com/sub1/sub2  --> www.domain1.com
domain1.com/sub1/sub2 --> www.domain1.com


www.domain2.com/sub1/sub2  --> www.domain2.com
domain2.com/sub1/sub2 --> www.domain2.com


www.domain3.com/sub1/sub2  --> www.domain3.com
domain3.com/sub1/sub2 --> www.domain3.com

これが私がこれまでに持っているものです:

RewriteCond %{HTTP_HOST} ^domain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.domain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain3\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.domain3\.com$ [NC]
RewriteRule ^sub1/sub2(.*)$ / [NC,L,R=301]

問題:
でのみ機能しwww.domain1.com, www.domain2.com, www.domain3.comます。

「www」のない URL では機能しません。だからうまくいきません:domain1.com/sub1/sub2

ありがとう!

4

1 に答える 1

1

あなたはこれを試すことができます:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?(domain1|domain2|domain3)\.com
RewriteCond %{REQUEST_URI}  ^/sub1/sub2/?  [NC]
RewriteRule .*   http://%{HTTP_HOST}/     [R=301,L]

このスキームでURLをリダイレクトします

http://www.domain1.com/sub1/sub2またhttp://domain1.com/sub1/sub2

対応するルートに、セグメントを削除します/sub1/sub2

/sub1/sub2固定文字列だと思いました。そうでない場合は、交換してください

RewriteCond %{REQUEST_URI}  ^/sub1/sub2/?  [NC]

RewriteCond %{REQUEST_URI}  ^/[^/]+/[^/]+/?  [NC]

ルールを機能させるには、パスに2つのフォルダーがあるURLスキームを/sub1/sub2/維持する必要があります。

于 2013-01-28T22:40:19.923 に答える