.htaccessで403エラーが出る問題について

このQ&Aのポイント
  • HP上で、INDEX(表紙)・INDEX2(INDEXの次のページ名(メニュー))というページという構成です。.htaccessを設置して、INDEX2へのアクセス時に403エラーを出すようにしています。しかし、一部のユーザーから「INDEXから来ているのにINDEX2に移動した際に403エラーが出る」という報告を受けています。
  • 原因が特定できないため、御情報をお待ちしています。
  • .htaccessの設定に問題があるのか、それともユーザーの環境の何かが影響しているのか、詳細な情報が必要です。
回答を見る
  • ベストアンサー

.htaccessで弾かれるユーザーとそうでないユーザーが居ます

HP上で、INDEX(表紙)・INDEX2(INDEXの次のページ名(メニュー))というページという構成です。 INDEXをお気に入りにして欲しい&INDEX2をお気に入りにして欲しくないので、INDEX2に直接アクセスした際、403エラーを出すよう、.htaccessを設置しています(INDEX2はフォルダを作り、その中で設置しています) アップロードして確認したのですが、.htaccessは無事に作動し、INDEXのみお気に入り可という事が出来たのですが、一部のお客様から「INDEXから来ているのに、INDEX2に移動した際403エラーが出る」という報告を何件か受けています。 正常に見られる方も居るので、原因が分りません。 御情報、お待ちしています。

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

  • ベストアンサー
  • dezimac
  • ベストアンサー率56% (2365/4208)
回答No.1

弾かれるのはおそらく、セキュリティソフトを利用しているユーザーでしょう。 セキュリティソフトがRefererを送信しないようにしているために、 INDEX -> INDEX2とアクセスしても、INDEXから来たという情報が送られずにINDEX2へ直接アクセスしたと判断されていると思われます。 こういった事は欠点の方が多いからやらない方がいいと思いますよ。 外部からの画像等への直接リンクを避けたいというならわかりますが。 http://allabout.co.jp/internet/hpcreate/closeup/CU20070201A/index.htm

kudo2yama
質問者

お礼

お返事有難うございます。 なお、インターネットセキュリティを使用してない方でもなっているようです。

その他の回答 (1)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

.htaccessはどのように記述されていますか? もしRefererを使用しているのでしたらそれが原因だと思います。 Refererはそう難しくなく詐称できます。 また、ファイアウォールの設定でRefererを吐かなくなることもあるようです。(ノートンとか) そのようなケースを判別するのは難しいでしょう。 やるとしたら.htaccessは使用せず、CGIやPHPなどを使用して、セッションやクッキーなどでフラグを発行して、そのフラグがないと次のページは開かないというような処理が必要になるかと思われます。 (それはそれで、クッキーを切っている人が見れないという問題が出てきますが)

kudo2yama
質問者

お礼

ご回答有難うございます。 おっしゃるとおり、Refererをつかっております。 ノートン使用をしていない方でもなっており、ブラウザの設定でRefererを認識しない仕様になっている、という可能性もありそうです。 CGIやPHPは分からないので、もしご存知でしたら教えて頂けると嬉しいです。

関連するQ&A

  • .htaccessで、404エラーページにユーザーが要求したページのア

    .htaccessで、404エラーページにユーザーが要求したページのアドレスを送る方法 今、htaccessで以下のような文を打ちました。 ErrorDocument 404 http://testa.com/index.php この.htaccessファイルは http://testb.com/に設置してあります。 それで、この転送先にPHPスクリプトを置いて転送を複雑化したいと思っています。 例えば、 http://testb.com/blog/ にアクセスを要求したら http://testa.com/index.php内で htaccessから送られてきたデータ(blog/等)を元に、 http://testc.com/blog/へのリンク・移転メッセージの表示をしたい。 それで、htaccessから送られてくるデータが分かればPHPは自力で作れます。 なので、htaccessからユーザーが要求したページのアドレスを404のエラーページに送る方法を教えてください。

  • .htaccessで可能でしょうか?

    レンタルサーバーを借りています。 そこではhtaccessファイルが利用可能なのですが、 そのhtaccessファイルでの設定で 以下の事は可能でしょうか? 例えばドメイン名が(全角で記述します) xxx.co.jp で URLとして http://xxx.co.jp/ にアクセスした場合、 通常http://xxx.co.jp/index.html 等にアクセスし開くと思うのですが、 これを1階層下のディレクトリにある http://xxx.co.jp/aaa/index.html のファイルを開かせる事は可能でしょうか? 以下のように記述したのですが、 DirectoryIndex aaa/index.html http://xxx.co.jp/ でアクセスした際はOKなのですが、 http://xxx.co.jp/aaa/index.html に直接アクセスするとエラーになってしまいます。 記述の仕方が悪いのでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • htaccessの上書き方法について

    昨日の質問の続きなのですが、 (昨日の質問:http://okwave.jp/qa/q8026821.html) 上記の質問で解決方法はわかったのですが、 私がCGIの触り方がわからないので、 自分なりに別の方法を探しました。 しかしうまくいかなかったので、また質問させてください。 ■質問 htaccessで「index.html」なしに設定したところ、 CGIがエラーを返すようなったので、 TOPディレクトリのhtaccess設定はそのままで、 CGIを使うページをまとめたディレクトリには 新たにhtaccessでindex.htmlありに、上書きできないかと考えました。 しかし結果はエラーでした。 どうにかして、特定のディレクトリにのみ、別のhtaccessを使って トップディレクトリに設置したhtaccessの設定を上書きする方法はないでしょうか。 ちなみに失敗した結果は下記の記述になります。 ▼成功したが、CGIページでエラーが出た記述 # URLの正規化(index.html無し) Options FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://scinex-fw.co.jp/$1 [R=301,L] ▼下層ページで上書きできなかった記述 # URLの正規化(index.html有り) RewriteEngine on RewriteRule ^$ /index.html [R=301]

    • ベストアンサー
    • CGI
  • .htaccessの設定

    ご教授宜しくお願い致します。

 下記web構成です。 トップページに
index.htmlがあり、他ページはabcのフォルダの中にさらにindex.htmlをおいています。
 トップページのアドレスの表示は、
http://www.sample.com/(仮)です。 abcのフォルダのページのアドレスは
http://www.sample.com/abc/ です。

 この状態で、404エラーを全てのページに適応させたいのですが、
自作の404.htmlのエラーページを作成し、.htaccessに下記記述をしました。 
ErrorDocument 404 /404.html

 しかし、これですと、
http://www.sample.com/ にのみしか適応にならず、他のページhttp://www.sample.com/abc/などは、読み込んではいるものの、CSSや画像の読み込みが出来ていない状態です。文字だけの表示となってしまいます。 

また、.htaccessに下記記述をすると ErrorDocument 404 http://www.sample.com/404.html 全てのページに適応になるのですが、 
http://www.sample.com/abc/404.html
といったアドレスになり、「404.html」という表示をさせたくないのです。

 何とか、.htaccessの記述で、全てのページに適応する記述方法はないでしょうか?

 どなたかご教授お願い致します。
宜しくお願い致します。

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

    質問させていただきます。 ロリポップで「.htaccess」までは作れたのですが、「.htaccess」を設置ディレクトリのファイルが作れません。 この言い方でよいのか、不安なのですが…。 具体的に、例えば「.htaccess」設置ディレクトリを「abc/」としました。 すると、アクセス制限をかけたいファイルの名前は「abc/top.html」になるんだと理解しています。 そこで、topページを作ってファイル名を書いて保存するとき、「abc/top.html」と書こうとすると、「上記のファイル名は無効です」とエラーがでます。たしかにファイル名に「/」は使えないな、とわかっているのですが、だったらどうやって「.htaccess設置ディレクトリ」の「abc/」が入ったファイルを作れば良いのでしょうか? 私が書かなくても勝手に「abc/」がつくのかな?と思い、ファイル名を「top.html」だけにしてみても、やっぱり「abc/top.html」にはなっていませんでした…。 どうすればよいのか、さっぱりわかりません。 わかりにくい質問かと思いますが、お答えよろしくお願いいたします。

  • htaccessでfirefoxのみエラーページに飛んでくれない

    サイトのトップディレクトリに.htaccessを設置しfirefoxのユーザーエージェントをはじいています。 自作のエラーページをerrというディレクトリの403.htmというファイルに飛ぶようにしています。 errディレクトリに.htaccessを設置し全て許可する設定にしています。 次のようなディレクトリ構成です。 http://xxxxx.com/.htaccess←firefoxのエージェントをはじく、403エラーはerr/403.htmに飛ばす http://xxxxx.com/err/.htaccess←全てのアクセスを許可 http://xxxxx.com/err/403.htm←403エラーの場合表示させる firefoxでhttp://xxxxx.com/にアクセスすると403エラーのページが表示されずapachの画面が表示されてしまいます。 http://xxxxx.com/err/403.htmにアクセスすると自作の403ページが表示されます。

  • OSXで.htaccess

    .htaccessを試しているんですが 置き場所は/Library/WebServer/Documents/.htaccess 自宅サーバに使っています htppd.confをいじくって Options -Indexesまでできるようになったんですが パスワード認証などを設置すると500エラーがでます ローカル192.168.1.17でもエラーがでます 記述は間違ってないと思います 他にも404のエラーページを出したりすると 500エラーがでます ディレクトリなどを書く.htaccessではエラーがでています Options -Indexesならちゃんと消えているんですが httpd.confのどこの設定を変えれば良いのでしょう教えてください!

  • .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
  • .htaccess設定後、リンクが開きません。

    .htaccess設定後、リンクが開きません。 よろしくお願いします。 .htaccess設定後、PC用リンクが開かず、ダウンロードのダイアログが出てしまいます。 そのダイアログ上で「検索」を押すと、 http://shell.windows.com/fileassoc/mimeassoc.asp?mime=application%2Fxhtml+xml このようなエラーサイト?が出てしまいます。 PC用サイトと携帯用サイトを作成し、.htaccessにて振り分けをしています。 .htaccess設置後にこの現象が発生しております。 設置直後には正常に表示されますが、なぜか30分?ほど経つと表示されなくなります。 .htaccessの中身は RewriteEngine On AddType application/xhtml+xml .html RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ /i/ [R] と記述しました。これはネットから検索してきたものです。 PCサイトのトップページ http://www.○○.com/index.html 携帯サイトのトップページ http://www.○○.com/i/index.html として作成しております。 http://www.○○.com/ でアクセスするとダウンロードダイアログがでてしまいます。 http://www.○○.com/index.htmlならば正常に表示されます。 また、携帯からではhttp://www.○○.com/i/index.htmlが正しく表示されます。 http://www.○○.com/でアクセスしたときに、 http://www.○○.com/index.htmlを表示できるようにしたいです。 正直、どこを見ればいいのか検討もつきません。 詳しい方がいらっしゃいましたらアドバイスをお願いいたします。

    • ベストアンサー
    • HTML
  • .htaccessでフォルダ内のファイル一覧を見えなくする方法

    .htaccessで、ダミーのindex.htmlを置かなくても一覧が表示されず、エラーページ(404など)を表示させるための.htaccess記述例を教えてください。 お願いいたします。

専門家に質問してみよう