2016-09-19 20 views
0

サブドメインが.htaccessを使用してメインドメイン上のファイルを指し示すことはできますか? 私はメインドメインとしてexample.comを持っていて、サブドメインを作成しました:directAdminを通じてone.example.com、two.example.comなど。サブドメインはメインドメイン上のapp.phpを指すが、urlではサブドメインは持続する必要がある。サブドメインの書き換えルール

だから、メインのドメインexample.comに住んでいたapp.phpを指している必要がありますone.example.comに移動しますが、URLはまだ

をone.example.com示すべきである私が見て、試してみました.htaccess rewrite subdomain to directoryなどに書かれている書き換えルールの多くは、これはリダイレクトと私はサブドメインを表示するためのURLを希望しながら、example.com/app.phpへのURLを変更し

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com 
RewriteRule ^(.*)$ http://example.com/app.php$1 [L,NC,QSA] 

: 現在、私はサブドメインのサブフォルダ内の.htaccessファイルで、この書き換えルールを持っています:one.example.com/whatever

これを行うことは可能ですか.htaccess、またはこれを行うにはさらに良い方法がありますか?

答えて

0

絶対URLは、ホスト名は、現在のホストと一致するかどうかを確認するために、mod_rewriteのチェックが指定されている場合は、別のサーバー上のターゲットとRewriteRuleは常にリダイレクト

絶対URL
を行います。そうであれば、スキームとホスト名は取り除かれ、結果のパスはURLパスとして扱われます。 それ以外の場合は、指定されたURLに対して外部リダイレクトが実行されます。現在のホストに外部リダイレクトを強制するには、下記の[R]フラグを参照してください。


リダイレクトせず、あなたのサブドメインにURL http://example.com/app.phpをマッピングするには、

RewriteRule ^(.*)$ http://example.com/app.php/$1 [P,QSA] 

P|proxyフラグを試す可能性があるにも注意してください

心の中で最後の注意を保つ:mod_proxyを必見このフラグを使用するには有効にする必要があります。通常、これはターゲットURLが https://...であれば、あなたもmod_proxy_connectですを有効にし、 SSLProxyEngine

SSLProxyEngine on 
であなたのメインまたは仮想ホストの設定でSSLを有効にする必要があり

a2enmod proxy proxy_http 

によって行うことができる


必要に応じて、ProxyPassも実行可能な解決策になる可能性があります。

+0

私はあなたの提案を試みましたが、それは機能していません、URLはまだメインドメインにリダイレクトされます。私はexample.com上で動作しているアプリケーションを持っており、one.example.comなどのURLを持つサブドメイン上で実行したい。 – zef

+0

私はテスト環境でこれを試してみるとうまくいきます。更新された回答をご覧ください。 –

+0

私は実際にhttps://を使用しています...しかし、私はサブドメインをドメインポインタに変更し、エイリアスとして動作します。これは、URLの書き換えを必要とせずに今私のために働いています。私はこれがより良い、より簡単な方法だと思う。 – zef