メンテナンス・トラブルシュート - ウェブサーバ - Alias によるリダイレクション 「.htaccess」によるリダイレクトは「.htaccess による制御」をご参照ください。
1. ports 以降の処理を行うには、「apache」に「mod_alias」がインストールされていることが前提となります。 「mod_alias」は、デフォルトでインストールされていると思いますが /usr/local/libexec/apache24/mod_alias.so が存在することと /usr/local/etc/apache24/httpd.conf で LoadModule alias_module libexec/apache24/mod_alias.so の行がコメントアウトされないことを確認しておいてください。 コメントアウトされていれば、コメント文字を外し、インストールされていなければ cd /usr/ports/www/apache24 make config で「ALIAS」のオプションをチェックして
/usr/local/libexec/apache24/mod_alias.so
/usr/local/etc/apache24/httpd.conf
LoadModule alias_module libexec/apache24/mod_alias.so
cd /usr/ports/www/apache24 make config
make deinstall make make install service apache24 configtest ← 定義に誤りがないかチェック service apache24 restart ← 再起動 2. ディレクトリのリダイレクト http://www.hogehoge.jp/ のドキュメントルートが /usr/local/www/apache24/data としてこの配下にごちゃごちゃものを置きたくなくて http://www.hogehoge.jp/site/ へのアクセス先を /usr/local/www/site 配下に置きたい場合、 /usr/local/etc/apache24/httpd.conf に記述することも可能ですが、サブディレクトリごとに設定したい場合 /usr/local/etc/apache24/Include/site.conf を作成して中に以下のように記述します。 Alias /site /usr/local/www/site/ ← この行がリダイレクトの設定 <Directory "/usr/local/www/site"> Options ExecCGI -Indexes +Includes AllowOverride All Require all granted </Directory> オプションは個々のサイトにあった設定にします。 設定後 > service apache24 configtest ← 定義に誤りがないかチェック > service apache24 restart ← 再起動 3. ファイルのリダイレクト 個々のファイルをリダイレクトさせるには、例えば /usr/local/www/site/site1.html を /usr/local/www/site/site01.html に変更した場合 /usr/local/etc/apache24/httpd.conf もしくは /usr/local/etc/apache24/Include/A.conf に以下を記述します。 Redirect /site/site1.html /site/site01.html でリダイレクトできます。 「.php」ファイルへの引数をつけることもできます。 この場合、注意すべきは「.html」で記述する場合「?引数1=値1&引数2=値2」と記述しますがリダイレクトの記述の場合「?引数1=値1&引数2=値2」とエスケープさせないで記述します。
make deinstall make make install service apache24 configtest ← 定義に誤りがないかチェック service apache24 restart ← 再起動
/usr/local/www/apache24/data
/usr/local/www/site
/usr/local/etc/apache24/Include/site.conf
Alias /site /usr/local/www/site/ ← この行がリダイレクトの設定 <Directory "/usr/local/www/site"> Options ExecCGI -Indexes +Includes AllowOverride All Require all granted </Directory>
> service apache24 configtest ← 定義に誤りがないかチェック > service apache24 restart ← 再起動
/usr/local/www/site/site1.html
/usr/local/www/site/site01.html
/usr/local/etc/apache24/httpd.conf もしくは /usr/local/etc/apache24/Include/A.conf
Redirect /site/site1.html /site/site01.html