このスレッドは未解決です(解決したらこちらで解決済にしてください)
<<戻る

オリジナルエラーページ このメッセージに返信する
日時: 2007/03/04 17:50
名前: ケロロ
URL:

バーチャルホスト用の
オリジナルエラーページを作成したいのですが、
どうすればいいのでしょうか?
記事編集 編集
Re: オリジナルエラーページ このメッセージに返信する
日時: 2007/03/04 20:33
名前: コミナミ
URL: https://www.bibirean2.jp/
まず、Apacheの設定ファイル httpd.confにて
該当するバーチャルホスト部分に  AllowOverride Allを追加します。
<VirtualHost *:80>
ServerName virtual.com
DocumentRoot /var/www/html/virtual
AllowOverride All (←追加 .htaccessファイルを有効にする)
ErrorLog logs/virtual-error_log
CustomLog logs/virtual-access_log combined env=!no_log
</VirtualHost>

Apacheを再起動します。
/sbin/service httpd restart

.htaccessファイルをバーチャルホストのドキュメントルートに設置します。
(パーミッションは644にします)
また、同時に自作したエラーメッセージファイルをバーチャルホストのドキュメントルートに
設置します。(パーミッションは604にします)

.htaccessファイルには次のように記述します。例)403エラーの場合

ErrorDocument 403 "/403.html"

オリジナルエラーメッセージは普通にホームページを作る要領で作成し
名前を403.html等にします。

400.html Bad Request
401.html Unauthorized
403.html Forbidden
404.html Not Found
408.html Request Timeout
414.html Request-URI Too Long
500.html Internal Server Error

これくらい用意すれば十分かと思います。

それと、セキュリティーの観点から以下の行を.htaccessファイルに追加して
おくことをお勧めします

Options -Indexes ←index.htmlファイルがない場合ドキュメントルートディレクトリーの中身を表示しない(代わりに 403 ForbiddenErrorを返す)
<Files ~"\.(dat|log|txt|env|ini|csv)$">
deny from all
</Files>
↑ブラウザより直接 dat|log|txt|env|ini|csv等CGIが読み込むデータファイルを見れなくする
※直接httpd.confにも記述出来ます。



管理人さんへ

セキュリティーの観点からも
<Files ~"\.(dat|log|txt|env|ini|csv)$">
deny from all
</Files>
の記述をWebサーバー構築(Apache) ユーザーディレクトリ作成(/~ユーザー名/)に追加
されてはいかがでしょうか?


Webサーバー構築(Apache)
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
  ↓
AllowOverride All ← .htaccessの許可
<Files ~"\.(dat|log|txt|env|ini|csv)$"> ←追加
deny from all  ←追加
</Files>  ←追加

ユーザーディレクトリ作成(/~ユーザー名/)

#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
以下の全行追加
<Directory /home/*/public_html>
AllowOverride All ← .htaccessの許可
Options IncludesNoExec ExecCGI FollowSymLinks ← CGI,SSI(Exec命令以外)の許可
<Files ~"\.(dat|log|txt|env|ini|csv)$"> ←追加
deny from all  ←追加
</Files>  ←追加
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
記事編集 編集
件名※必須
名前※必須
URL
任意のパスワード (投稿後のコメント修正・削除時に使用)
画像認証※必須 投稿キー(画像で表示されている数字を入力)
コメント※必須

※質問を投稿後に自己解決された場合は、原因と行った対処を具体的に書き込み下さるよう、よろしくお願いします。

- WEB PATIO -