1

私はプライマリ ドメインを持っています - それをxyz.comと呼びましょう。また、 abc.com def.com、ghi.comなど、他にもいくつかのセカンダリ ドメインを持っています。これらのドメインはすべて同じコンテンツを持っています。

セカンダリ ドメインのいずれかを取得し、それをプライマリ xyz ドメインに置き換える URL リダイレクトを IIRF で実行しようとしています。

これは私が得た最も近いものです。

RewriteCond  %{HTTP_HOST}  ^(?!(.*)\.xyz\.com)$
RedirectRule ^/(.*)$        http://*1.xyz.com/$1   

問題 #1: これで123.abc.comに移動すると、 .xyz.comに移動します(サブドメインが失われています。「*1」で取得できると思っていました)。

問題 2: www.xyz.com にアクセスしても.xyz.comにリダイレクトされるこのルールは明らかに xyz.com ドメインを無視するはずです

4

2 に答える 2

1

これはうまくいくはずです

#not in main.com
RewriteCond %{HTTP_HOST} !.*main.com [NC]
#get the subdomain as a backreference to use in the RewriteRule
RewriteCond %{HTTP_HOST} (.*)[a-z0-9]+\.[a-z]+$ [NC]
#Rewrite the new URL
RewriteRule ^(.*)$ http://%1main.com/$1 [NC,QSA,L]

ただし、私は最も優れた正規表現の第一人者ではないため、予期しない結果をもたらすいくつかの境界ケースがあるかもしれません

于 2010-09-15T06:11:07.437 に答える
0

私は一週間かかりましたが、私はそれを手に入れました。

##### handles 3-part domains like "xxx.yyy.com"
    RewriteCond %{HTTP_HOST} ^(.*)\.(?!xyz).*\.com$        
    RedirectRule ^/(.*)$ http://*1.xyz.com/$1 [R=301]

##### handles 2-part domains like "yyy.com"      
    RewriteCond %{HTTP_HOST} ^(?!xyz).*\.com$        
    RedirectRule ^/(.*)$ http://xyz.com/$1 [R=301]
于 2010-09-20T12:50:34.087 に答える