2011-09-15 5 views
0

Apache2のVHostで実行されているプロジェクトで(少なくとも私のために)些細でない作業があります。Apache:(非)サブドメインの軽微な書き換え

私は次のことをachiveしたいのですが、私はドメインを所有していることを仮定すると、「foobar.com」と私のレジストラーの設定パネルで、すべてのsubdmainsは「すべてのワイルドカードキャッチ」を作成しました:

すべての要求は、「APIに行きます.foobar.com 'が合格するはずです。 「* .foobar.com」に行くすべてのリクエストは、「*」以外は「foobar.com」に書き換えてください。

正しい書き換え条件とルールを書き込めないようです。誰も助けることができますか?

Thxとは、

フェリックス

答えて

0

このようにすることができます。ここで

RewiteEngine ON 

RewriteCond ${HTTP_HOST} !^api\.foobar\.com$ 
RewriteCond ${HTTP_HOST} !^foobar\.com$ 
RewriteRule ^/?(.*)$ "http\:\/\/foobar\.com\/$1" [R=301,L] 

あなたはfoobar.com上記のエントリは、URLを追加し

からapi.foobar.com OR foobar.com以外のホストと任意のURLにリダイレクトされ、それが望まれない場合はRewriteRuleディレクティブ

$1をスキップすることができます

Updtae
GeorgieF(OP)は次の正規表現を提案していますulも働きます:

RewriteCond ${HTTP_HOST} !^(api\.)?foobar\.com$ [OR] 
RewriteRule ^/?(.*)$ "http\:\/\/foobar\.com\/$1" [R=301,L] 
+0

こんにちはdanishgoel、thxしかし、これは動作しません。ルールをRewriteRule^/?(。*)$ "http \:\/\ foobar \ .com \/$ 1"に変更しなければなりませんでしたが、現在は無限のリダイレクトによってページを読み込み中。また、api.foobar.comはfoobar.comにリダイレクトされます。 – GeorgieF

+0

[OR]フラグを追加しようとしましたが、私の回答が更新されました – danishgoel

+0

両方の問題が解決しました。 apiはリダイレクトし、無限のリダイレクトが発生します。カールで試してエラーの原因としてブラウザを除外しました。私はサブドメインが空またはapiでなければならないと言う正規表現を持つ条件の1つでなければならないと思う。何かのような!^(api \。)?foobar.com $ – GeorgieF

関連する問題