2017-06-27 11 views
0

ドメインのサブフォルダからすべての訪問者を別のドメインの同じサブフォルダにhtaccess-redirectしたいと思います。 をだけフォルダのために例えば.htaccess foo.com/subからbar.com/subへのリダイレクト

"フォルダ" - それは、すべてのサブフォルダとファイルに適用する必要があります。

foo.com/folder - > bar.com/folder

サブ構造

foo.com/folder/subfolder/file.phpと - > bar.com/folder/subfolder/file.ph p

私が見つけたすべての投稿は、(サブ)フォルダに関するものであり、ドメインに関するものではありません。

ありがとう!

更新:寄稿者のおかげで、私は検索しようとしましたが、Drupalはリダイレクトをブロックしていたので、私が見つけた答えは考えられませんでした。とにかく正しい答えをありがとう!

+0

が実際ここに他のドメインまたはホストへの外部リダイレクトを実証回答の何百万があります。 – arkascha

答えて

1

これは大体あなたが探しているものでなければなりません:

RewriteEngine on 
RewriteRule ^/?(.*)$ https://example.com/$1 [END,QSA] 

そのルールは、httpサーバのホスト構成でかつダイナミックなコンフィギュレーションファイル(「.htaccessファイル」)にも同様に動作します。

「内部サーバーエラー(httpステータス500)」が表示される場合は、非常に古いバージョンのApache HTTPサーバーを操作する可能性があります。その場合、httpサーバのエラーログファイルにヒントがあります。その場合は、[END]フラグを[L]フラグに置き換える必要があります。

両方のドメインを単一のhttpサーバー上の仮想ホストとして操作する場合は、無限のリライトループを作成しないように注意する必要があります。その場合には、このようなループを防止するための条件を追加します。

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^example\.com$ 
RewriteRule ^/?(.*)$ https://example.com/$1 [END,QSA] 

一般的なヒント:あなたは常にhttpサーバの内部でこのようなルールを置くことを好む必要があります代わりに、動的な構成ファイルを使用しての(バーチャル)ホストの設定(.htaccessスタイルファイル) 。これらのファイルは悪名高いエラーが発生しやすく、デバッグが難しく、サーバーの速度が遅くなります。彼らは、あなたがホスト構成(本当に安いホスティングサービスプロバイダを読む)を持っていないか、独自の書き換えルールを書くことに頼っているアプリケーションを持っている場合にのみ、最後のオプションとして提供されます(これは明白なセキュリティの悪夢です)。


UPDATE:コメントで

あなたが唯一の要求パス内の特定のサブフォルダに、このようなリダイレクトを適用することを言及下回ります。あなただけのマッチングパターンを変更する必要があることを行うには:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^example\.com$ 
RewriteRule ^/?folder/(.*)$ https://example.com/folder/$1 [END,QSA] 

選択肢は、次のようになります。

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^example\.com$ 
RewriteRule ^/?(folder/.*)$ https://example.com/$1 [END,QSA] 
+0

努力してくれてありがとう!私はストレスを忘れていました。私は、単に他のサブフォルダではなく、フォルダ*フォルダーに転送したいだけです。 – Arerrac

+0

@Arerrac確かに、私は答えに更新を追加しました。 – arkascha

+0

お返事いただきありがとうございます。それ自体は機能していますが、drupal-siteであり、URLがdrupal-systemで利用可能な場合は、何らかの形でリダイレクトをブロックするという問題があります。奇妙な!しかしそれは別の話題です: - /ありがとう! – Arerrac

関連する問題