.htaccessでページを隠す方法とエラーページの設定方法

このQ&Aのポイント
  • .htaccessファイルを使用して、指定ページが見つからない場合や削除された場合のエラーページを設定する方法を教えてください。
  • .htaccessファイルで.htaccess自体を隠す方法を教えてください。
  • ファイルの設置方法についてもご指導ください。.htaccessやnotfound.htmlをアスキーモードで、index.htmlと同じ位置にアップロードし、属性を606に設定しましたが、エラーが出てしまいます。
回答を見る
  • ベストアンサー

.htaccessの記述方法(このファイルを隠す。エラーページ)

.htaccessファイルで下記のようなことをする記述方法を教えて下さい。 (1)指定ページが見つからない、削除されてしまったっ場合。 参考:http://allabout.co.jp/internet/hpcreate/closeup/CU20031019A/index2.htm ErrorDocument 404 /notfound.html (2).htaccess自体を隠す。 参考:http://htaccess.pasoa.com/itself.htm <Files ~ "^\.ht"> deny from all </Files> ファイルに <Files ~ "^\.ht"> deny from all </Files> ErrorDocument 404 /notfound.html 記述したのですが、エラーが出ました。 また、設置は、.htaccess・notfound.htmlをアスキーモードで、index.htmlと同じ位置にアップロードし、属性を606する。

  • HTML
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>エラーが出ました。 500エラーでしょうか? 1.まず (1)と(2)を .htaccessに記述して使うためには   httpd.confの該当コンテナの AllowOverride 部分で   (1) に対しては FileInfo を   (2) に対しては Limit が許可されていないと    .htaccessの文法などが正しくても 500エラーになります    http://httpd.apache.org/docs/2.2/ja/mod/core.html#allowoverride   要するにサーバー管理者側から許可されていないと駄目ですが、その点は確認されていますか? 2. 許可されていたとしてですが 500エラーになる原因は    A. 文法的に間違い=>質問文を見る限り500エラーになるミスは無いようです    B. 全角スペースが入っている    C. 文字コードを UTF-8 にしている=> BOMが入っているとエラーになります     BOM無しのUTF-8Nなら大丈夫ですが       http://ja.wikipedia.org/wiki/UTF-8    D. 行の後ろに#コメントをつけている      .htaccess は行頭に #をつければコメントになりますが      例えば        ErrorDocument 404 /notfound.html # 404エラーの指定      などと 一行の中で 行末にコメントをつける事は出来ません そんなところかな? 勿論転送はasciiモードです。 でエラーには成りませんが 危ないので .htaccess は604にしてください あと そもそも今時 <Files ~ "^\.ht"> なんて .htaccessの中で必要ですか? 20世紀の昔ならともかく、今時のまともなプロバイダやレンタルサーバーでは httpd.conf の中で <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> (または <FilesMatch )と指定しているのが常識ですし、 そもそもApacheをインストールした時点でそうなっています

関連するQ&A

  • .htaccessについて

    「ロリポップレンタルサーバー」で.htaccessファイルを設置したのですが、 なぜか「500エラー」が出てしまいます。 何が原因なのか分からないでしょうか? 【問題の.htaccessファイル】 <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options +MultiViews Options -Indexes ErrorDocument 401 http://hoge.com/error/401.htm ErrorDocument 403 http://hoge.com/error/403.htm ErrorDocument 404 http://hoge.com/error/404.htm ErrorDocument 500 http://hoge.com/error/500.htm RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.hoge\.com)(:80)? [NC] RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] DirectoryIndex index.htm Redirect permanent http://hoge.com/sub http://sub.hoge.com/ order deny,allow [EOF] ちなみに「.htaccess Editor」というサイトで作ったものを少しいじりました。

  • .htaccessで403error時に表示するページの設定

    現在、.htaccessで403エラーになったときに表示されるページの設定をしているのですが、 作成した403用のページを表示できず、ブラウザのデフォルト403ページが表示されてしまっています。 .htaccess自体は正常に動作しているのを確認しているため、 ErrorDocumentに関連する記述が誤っていると思うのですが、どこがおかしいのかが分かりません。 どうぞご教授お願いいたします。 なお、403時に表示されるページのアドレスは、(サイトURL)/error/403.html、すでにサーバー上にアップ済です。 下記が現在記述している.htaccessになります。 AddHandler cgi-script htaccess SetEnvIf Accept-Language ko Lilith SetEnvIf Accept-Language en Lilith ErrorDocument 403 /error/403.html Order Allow,Deny Allow from all deny from env=Lilith deny from .ed.jp deny from .ac.jp

  • .htaccessの記述間違いを教えてください

    .htaccessを使用して、アクセス制御を行おうとしたのですが、アップロードしてアクセスしてみるとすべてのアクセスがブロックされてしまいました。 制御したい事柄は以下の通りです。 ファイルの「.htaccessと.htpasswdと.class.php」にはアクセスできないようにすること。 IPアドレス88.80.10.1は、アクセス拒否 ユーザーエージェントの「MorfeusとZmEu」の名前がつくものは、FORBIDDEN を返すというものです。 以下 .htaccess の記述内容 ----------------------------------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> <Files ~ "\.class\.php$"> deny from all </Files> Order allow,deny Deny from 88.80.10.1 RewriteEngine On RewriteOptions inherit RewriteCond %{HTTP_USER_AGENT} ^Morfeus RewriteRule ^.*$ - [F] RewriteCond %{HTTP_USER_AGENT} ^ZmEu RewriteRule ^.*$ - [F] ----------------------------------- 何卒よろしくお願いいたします。

  • アクセス制限について

    初めまして。 質問の内容ですが、www直下においてある.htaccessに動作確認の為自分のホストをdenyするように記述しても、フォルダBにあるファイルにアクセスできてしまいます。フォルダAのバナーは表示されなくなるのですが…。 ロボ避けが働かないと困るので、何とか機能させたいと思っています。ディレクトリの構成と内容は以下の通りです。 | .htaccess | フォルダA(直リンクバナーを置いています)   |-.htaccessなし | フォルダB(サイト本体です)   |-.htaccessあり | フォルダC(制限にかかった時表示するファイルを置いています)   |-.htaccessあり ==========直下の.htaccess=========== DirectoryIndex index.html .ht order allow,deny allow from all deny from xxx.xxx.xxx.xxx deny from 自分のホスト名 <Files ~ "^\.ht"> deny from all </Files> <Files robots.txt> order deny,allow allow from all </Files> ==========フォルダB=========== DirectoryIndex index.html .ht ErrorDocument 403 /フォルダC/403.html order allow,deny allow from all deny from yyy.yyy.yyy.yyy <Files ~ "^\.ht"> deny from all </Files> ====================== です。長くてすみません。 以前動作確認した時はちゃんと弾かれていたのですが、最近フォルダBにある.htaccessを編集した時に再度動作確認してみると弾かれなくなっていました。 フォルダBに自分のホストをdenyするように書くとちゃんと機能します。どの辺りをいじればいいでしょうか?

    • ベストアンサー
    • HTML
  • .htaccessで複数ファイルを特定IPアドレスを指定して拒否する方法

    拒否するページ:http://www.abc.com/def/ghi.html http://www.be-webdesigner.com/technotes/server/htaccess/access_deny.htm を参考に。 ErrorDocument 403 /htaccess/forbidden.html <Files ~ "^/def/ghi.html$"> deny from IPアドレス </Files> としているのですが、アクセス拒否されません。 特定のIPアドレスより、複数のページのみアクセス拒否したいのですが。

    • ベストアンサー
    • HTML
  • .htaccessの設置について

    HPを制作したのですが、ソース内の文字を文字化けさせたくて .htaccessを設置したのですが見れてしまいます。 属性も604にしました。 内容は Options -Indexes DirectoryIndex index.html index.htm index.cgi index.php <Files ~ "\.(htpasswd|htaccess|txt|log|csv|xls|dat)$"> deny from all </Files> です。 これだけではダメなのでしょうか?

    • ベストアンサー
    • HTML
  • htaccessの記述の違い

    .htaccessを使用してアクセス制限をしています。 次のような記述をしています。 Order Allow,Deny Allow from aaa 記述を変えると次のようにも記述できます。 Order Deny,Allow Deny from all Allow from aaa 上の記述と下の記述は同一内容になるのでしょうか?

  • CGIを使っていないページを.htaccessでアクセス制御

    こんにちは。質問させて頂きます。 不正アクセスをした人を制限する為に.htaccessを使いたいと思っています。 それで.htaccessは掲示板などのCGIではないページ、つまり○○.htmlなどのディレクトリにおく事は可能なのでしょうか?(htmiファイルに対して制限を掛ける事が可能?) そして記述は <Limit GET> order allow,deny allow from all deny from ●●●.domain.com deny from 209.15.00.00 </Limit> <Files ".*"> deny from all </Files> これでいいのでしょうか?ホストとIPがわかっている場合はその両方を続けて記述してもOKなのでしょうか? それとファイル名なのですが、.htaccessだけでいいのでしょうか? ○○.htaccessみたいに任意の名前を付けられないのでしょうか。 転送はアスキーモードとくぃう事ですが、普通のHTMLファイルと同じって事なのでしょうか?そもそも.htaccessはCGIとは違うので、cgiのディレクトリにいれなくてもいいんですよね?Parlのパスも記述しなくていいみたいですし。 疑問点が多いので申し訳ないのですが、どうか宜しくお願い致します。

  • .htaccessで特定のフォルダ以外をアクセス禁止にするには?

    昨日からLinuxの勉強を始めた初心者です。 .htaccessの書き方についてどなたかご教授ください。 特定のファイル(index.phpとhtmlフォルダ)以外へのアクセスを禁止しようと下記のコードを書いてみました。 <Files ~ "*"> deny from all </Files> <Files ~ "^(index.php|html)$"> allow from all </Files> が、全てのファイルへのアクセスが禁止されてしまったのか、index.phpへアクセスできなくなってしまいました。 かといって、index.phpとhtmlフォルダ以外の全てのファイルを記述して、denyするのは記述が汚くなるので避けたいです。 どのように記述したらよいのでしょうか?

  • .htaccessの設定について

    .htaccessの設定について以下のように記述しましたが、 404のページに飛んでしまいます。 REQUEST_FILENAMEが見つからないときは、index.phpに飛んでくれる設定ではないのですか? それとも、REQUEST_FILENAMEに直接フルパスをhtt;//xxx.net/という風に指定してくれるものなのでしょうか? よろしくお願いします。 <記述したコード> AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] ErrorDocument 404 /page-unavailable/ <files ~ "\.tpl$"> order deny,allow allow from none deny from all </files>

専門家に質問してみよう