0

私は目標を達成するのに近づいていますが、問題の正しい解決策を思い付くことができません。

ワイルドカードサブドメインについて、次のルールを作成しました。

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

#rewrite subdomains to /club/<clubname as defined by subdomain>/<whatever was here before>
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/club/%1/$0 [NC,L]

これは私が必要としているものに必死に近いです。つまり、http://alpha.domain.com/some/string/hereにアクセスすると、URLはhttp://domain.com/club/alpha/some/string/に書き換えられます。ここ

でも

ブラウザのURLを元のURLのように見せたい

よろしくお願いします

編集:最終ルールにPTを追加しようとしましたが、機能しません。400エラーが発生します

EDIT2:興味のある人のために、私はこの問い合わせの行を放棄し、代わりにphpを使用してサブドメインのテキストを読みました。

4

1 に答える 1

1

www.example.comサブドメインがexample.comドメインと同じ仮想ホストを使用している場合は、相対パスを使用して内部書き換えを使用できます。

RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
RewriteCond $0 !^club/
RewriteRule ^(.*)$ club/%1/$0 [NC,L]

それ以外の場合は、プロキシが必要になります。

RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/club/%1/$0 [NC,L,P]
于 2011-02-10T15:29:07.047 に答える