複数の仮想ホストを使用して、Debian etchでApache2を実行しています。
リダイレクトしたいのでhttp://git.example.com
に行く http://git.example.com/git/
本当にシンプルなはずですが、Googleはそれを完全にカットしていません。私はリダイレクトと書き換えを試しましたが、彼らは私が望んでいることをまったくしていないようです...
少しばかげた感じ-もう少しグーグルすると、私が求めていた答えが見つかりました:
RedirectMatch ^/$ /git/
基本的にルートをリダイレクトし、ルートのみをリダイレクトします。
このコードは.htaccess
ファイル(このためのタグがあるため、それが元の使用例であると想定しています)。しかし、編集できる場合は、メインサーバーのApache構成をWebサイトのセクションに配置し、おそらく<VirtualHost>
セクション。
RedirectMatchのドキュメント は、 context は「サーバー構成、仮想ホスト、ディレクトリ、.htaccess」とすることができると言います。
あなたはリダイレクトでそこに正しい答えを持っています。すべてを別の場所にリダイレクトする場合は、そこに再帰的なリダイレクトを取得できるため、注意が必要です。これは、メンテナンスページを表示する場合に発生します。
Redirectディレクティブを使用できます。
<Directory />
Redirect permanent / http://git.example.com/git/
...
</Directory>
受け入れられた回答で問題は解決しましたが、存在しないページに404リダイレクトを追加する必要があることもわかりました-私の状況は、OwnCloudインストールがルートの1つ下のレベルにあるということです( https:// example。 com/owncloud )。
これは私にとってはうまくいき、すべてを私のサブディレクトリに送信しました:
# redirect from root to subdirectory
RedirectMatch ^/$ /thesubdirectory/
# redirect on 404 to subdirectory
ErrorDocument 404 /thesubdirectory/index.php