これは大体あなたが探しているものでなければなりません:
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]
が実際ここに他のドメインまたはホストへの外部リダイレクトを実証回答の何百万があります。 – arkascha