2012-04-21 8 views
0

私は2つのドメイン(VirtualHost経由)を持つApacheサーバーを持っています。
ファイルの設定は、このようなものです:/example1/example2/
example1は私がメインのApacheの設定ファイルへのアクセス権を持っているwww.example2.com/<whatever else>
にリダイレクトするwww.example1.com/example2/<whatever else>ためたいwww.example2.com
のルートがあるwww.example1.com
example2のルートです。これを行う方法に関するヒント?私はApacheの設定に慣れていないので、どんな説明も非常に高く評価されます。Apacheを使って別のドメインにディレクトリをリダイレクトする方法は?

この他の質問には説明がありませんでしたので、私自身の質問を投稿しなければならないと感じました。

答えて

3

.htaccessファイルを使用すると、これをかなり早く行うことができます。 www.example1.com/example2/では、この.htaccessファイルを作成します。

<VirtualHost *:80> 
    ... 
    <Directory /path/to/vhost/> 
     RewriteEngine on 
     RewriteBase /example2/ 
     RewriteRule ^(.*)$ http://www.example2.com/$1 [R=301] 
    </Directory> 
</VirtualHost> 

これはリダイレクトが301になりたいと仮定しない、とexample2フォルダがAllowOverride Allセットを持っていること。

このルールは、regexを使用して着信URLを取得し、example2ビットを置き換えて書き換えURLに追加します。大括弧で囲まれたRは、Apacheに、書き換えられたURLにLocationヘッダーを使用するよう指示します。 =301は、Apacheに301のPermanent Redirectヘッダーを使用するように指示します。

+0

をファイル?また、これはどのように機能しますか? – Yoshiyahu

+0

さて、いくつかの研究をした後、RewriteEngineなどは ''にあるはずです また、正規表現は無効です。 '?'はそれをスローします。今のところ、example2.comのリダイレクトループしか得られません。 – Yoshiyahu

+0

無限ループですか?これを両方の仮想ホストに追加しましたか?あるいはexample2の仮想ホスト? –

0

TOUがアクティブmod_aliasを持っている場合は、あなたがRedirectディレクティブを使用することができます:私はしていない場合、私はむしろ、.htaccessファイルを使用していないと思いますので、どのように私はメインの設定でこれを置く

<VirtualHost *:80> 
    ServerName example1.com 
    Redirect 301 /example2 http://www.example2.com 
</VirtualHost> 
関連する問題