サブディレクトリへのアクセス制限

このQ&Aのポイント
  • Webサイトでのサブディレクトリへのアクセスについて質問させて下さい。
  • サブディレクトリ内のファイルへの直接アクセスや他のファイルからのアクセスを制限する方法を知りたいです。
  • .htaccessの設定など、制限する方法についてお詳しい方、ご教授願います。
回答を見る
  • ベストアンサー

サブディレクトリへのアクセス制限

いつも大変お世話になっておりますm(__)m Webサイトでのサブディレクトリへのアクセスについて質問させて下さい。 http://example.com/form.html という問い合わせページがあるとします。このフォームは <form name='form' method='POST' action='hoge/sample.php'> という感じで、サブフォルダ「hoge」の「sample.php」というファイル(http://example.com/hoge/sample.php)へPOSTで送信するように作成しています。 この場合、ブラウザのアドレス欄に「http://example.com/hoge/sample.php」と直接入力すると、sample.phpが実行されてしまいます。 直接アクセスされた場合、または別のファイル(http://example.com/form.html以外)からPOST送信やアクセスされた場合にエラー表示など、制限する事は可能でしょうか?? .htaccessの設定など、いろいろ調べてみたのですが、良い方法が見つかりませんでしたので、お詳しい方、是非ともお力をお貸し下さい。 宜しくお願い致しますm(__)m

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>直接アクセスされた場合 直接送られて問題があるのでしょうか? やるならリファラをみるというのが妥当でしょうが、偽装できないわけではありません。 POSTで必要データがあるかどうかで確認するとか、送り元を PHPにしてセッションで処理するとかになると思います。 最初にも書きましたが、直接送信されても困らないように書くのが 賢明です。

osaka-aq
質問者

お礼

ご回答ありがとうございますm(__)m 確かに、受け側でPOSTデータをチェックして無視すればいいんですね(>_<) つまらない事を質問しまして失礼しましたm(__)m また何かの際は、宜しくお願い致します。

関連するQ&A

  • サブドメイン、サブディレクトリへ301ダイレクト

    サブドメイン、サブディレクトリへの301ダイレクト方法はありますか。 example.com のサイトの中身を ↓301 hogehoge.com/example/ もしくは example.hogehoge.com/ にうつしたいのですが、個々のページは同じでそっくり引っ越す場合の方法です。 .htaccess で可能でしょうか

    • 締切済み
    • SEO
  • ディレクトリへのアクセス制限

    htaccessを使って、ディレクトリへのアクセス制限をしたいのですが。 できれば、IDとパスワードの発行、管理はMySQL プログラムはPHPで作成したいと思っています。 いまいち、htaccessを使っての制限方法の仕組みが よく分かっていないのですが、サンプルコードかフリーのプログラムが あれば教えていただけないでしょうか?

    • 締切済み
    • PHP
  • サブドメインとサブディレクトリーについて

    いつもお世話になりしてありがとうございます。 サブドメインについて、躓きましたので教えて戴きたいのですが 今困っているサブドメインについては、例えば 「test.hoge.com」 というサブドメインを作成しました。 そのフォルダーを「/hoge.com/test/」に作成しました。 そうすると、勿論サブドメインの、http://test.hoge.com はアクセス出来ますが、http://hoge.com/test/ にも両方アクセス出来るのです。 サーバーの仕様上どちらも表示するように出来ているのだと思われます。 それで困ったことは、Googleにインデックスされるのは、サブディレクトリーの片方のみで、サブドメイン側はインデックスされません。 これは私が幾つも作ったのですが、どれも駄目で、サブディレクトリーの方のみがインデックスされます。 サブドメインは全くどれもインデックスされません。(WEBマスターツールで確認) 多分これは、同じコンテンツのサイトがもう一つ存在する、コピペのサイトと勘違いされ、合計二つ存在すると認識され、ペナルティー受けインデックスされないものだと思われます。 この場合は、サブドメインは止めてサブディレクトリーのみにした方が良いのでしょうか。 でも、それなら、なんのためにサブドメインが有るのか意味が無くなりますが。 できれば、サブドメインのみが表示、アクセス出来る方法を知りたいのですが。 以上宜しくお願いします。

  • 独自ドメインでのアクセス制限

    現在、一つのロリポップサーバーでの独自ドメインでサイトとブログを運営しています。 ・サイト:ttp://www.Example.com(主) ・ブログ:ttp://blog.Example.com(サブドメイン) .htaccessで特定のIPからのアクセス制限をしたいと思っているんですが、下記のように記載しても制限されません。(試しに自分のIPも入れて試みました。) order allow,deny allow from all deny from xxx/0 deny from yyy/0 deny from zzz/0 ErrorDocument 403 403.html 主にサブドメインのブログのアクセス制限をしたいのですがサブドメインディレクトリに置いて.htaccessに名前を変更しても制限されません。 また、403.htmlも.htaccessと同じサブドメインディレクトリに置いてあります。 何か間違っている事があるでしょうか??

  • .htaccessでアクセス制限をかけたディレクトリの下の階層のディレクトリのアクセス制限

    はじめまして、とあるWEBデザイナーです。 会社のサイトをホスティング会社にお願いして 専用サーバーで保守管理してもらっています。 表題の件なのですが、.htaccessでアクセス制限を かけたディレクトリの下の階層にある ディレクトリにアクセス制限をかけてID、パスワード を入力させるようにしたいのですが、 .htaccessについて調べてみたところ、 .htaccessはアクセス制限をかけた以下のすべての ディレクトリが有効範囲になるため、 すでにアクセス制限有効なディレクトリに 重複して設定することは出来ない ということが分かりました。 このようなケースの場合、ディレクトリに アクセス制限をかけるにはどうしたら よいのでしょうか? CGIなどでプログラムを組むのでしょうか? それともWebサーバー側で設定などするのでしょうか? 当方、フリーのCGIやPHPを少し改造できる程度です。 こういう場合、普通はどうされているのか、 どんな情報でもかまいませんので お教えいただけると幸いです。

  • サブドメイン→サブディレクトリにwordpress

    サブドメイン→サブディレクトリにWORDPRESSサイトを移管する方法を教えてください。 サブディレクトリからサブドメインに移す方法は見つけることができるのですが、その逆のサブドメインからサブディレクトリへの引っ越しの方法がわかりません。 サブドメイン : http://sub.example.com (現状、wordpress組込済) ▽ サブディレクトリ :http://example.com/sub(コチラヘ引っ越し) また、これまでの検索順位が引き継がれるようにできますでしょうか?。 ご存知の方いらっしゃいましたらアドバイスいただきたいです。 何卒よろしくお願いいたします。

  • .htaccessでのRewriteRuleが下層ディレクトリに効かない

    現在一番上の階層にドメインを適用しており、そこでwww有りと無しを統一する為、.htaccessに以下のように記述しています。 RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? RewriteRule ^(.*) http://example.com/$1 [R=301,L] これで、http://www.example.com/ は http://example.com へ、 下層ディレクトリの http://www.example.com/sample/ は http://example.com/sample/ と、 上記のようにリダイレクトしてくれますが、下層ディレクトリの中に掲示板スクリプトを設置しているものがありまして、 そのディレクトリ(/bbs)の中にも、スクリプトのURL書き換えの為のRewriteRuleを記述した.htaccessを設置しています。 ※このディレクトリ(/bbs)のRewriteRuleには、RewriteCond %{HTTP_HOST} は記述していません。 ここで困った事に、http://www.example.com/bbs/ にアクセスすると、そのままwwwが付いたURLがそのままアドレスバーに表示され、 www無し(http://example.com/bbs/)にリダイレクトしてくれません。 .htaccessを設置していない(RewriteRuleを記述していない)下層ディレクトリは、上層ディレクトリに記述しているRewriteRuleの継承をしてくれる為、http://example.com/sample/ のように表示(リダイレクト)されますが、上記の/bbs ディレクトリなどに対しても、上層のRewriteRule を引き継げる方法は無いでしょうか? 色々調べて、RewriteOptions inherit というのも見つけたのですが、/bbs ディレクトリの.htaccessに記述しても、 トップページ(http://example.com/)へリダイレクトされてしまい、どうすれば良いか悩んでおります。 環境は共用レンタルサーバで、 Apacheのバージョンは1.3.39 (Unix)。 httpd.confは自分では設定する事が出来ません。 上層ディレクトリのRewriteRuleを引き継げない場合、/bbs ディレクトリの.htaccessにはどのように記述すれば www無し(http://example.com/bbs/)になるのかでも勿論構いません。 もし良い方法がありましたらご教示頂けますと幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • CakePHPの .htaccess設定について

    CakePHPをVPSで構築したサーバー(Linux)にインストールしました。 .htaccess(mod_rewrite)の設定がうまくいっていないようなので対処の方法を教えてください。 [環境] PHP 5.3.3 Apache 2.3.3 CakePHP 1.3.15 mod_rewriteが動いてるのはチェック用のプログラムで確認しました。 controllerとViewファイルを作り、文字の表示は成功しています。 フォームの実験を行った時にフォーム送信後のURL表示がうまくいっていません。(get/post共に) [書籍を参考にしたプログラム] Sampleコントローラーを作り、Viewの中にSampleディレクトリを作りその中にindex.ctpファイルを設置。フォームにテキストを入力して送信ボタンを押すと、テキストが表示されるプログラムです。 [コントローラー]sample_controller.php class HelloController extends AppController { public $name = 'Hello'; public $uses = null; public $layout = "hello"; function index(){} function sendForm(){ ~フォームで送られたテキストを表示(プログラムは省略)~ } } [index.ctp]のフォームのHTML <form method="post" action="./sendForm"> ~省略~ <input type="submit" /> </form> http://www.example.com/sampleでフォームを開きテキストを入力して送信ボタンを押すと http://www/example.com/sample/sendForm というURLになるはずなのですが、 http://www.example.com/sendForm となってしまいます。 試しにブラウザから「http://www/example.com/sample/sendForm」というURLを入力してみますと、フォームで入力したデータは表示されませんが、ページ自体は表示されます。 もう一つ、index.ctpの<form method="post" action="./sendForm">のアクションのパスを /sample/sendForm に変更してみますとデータも表示され、求めた結果になります。 以前、別の環境でこのプログラムを動かしたときは、<form method="post" action="./sendForm">のままでうまくいったので、.htaccessのファイルの設定に問題があると予想されます。 下記にcakePHPの設定情報を記載しますので、間違っている部分を指摘していただければと思います。 ※ディレクトリの構成は下記のページの「3.4.3. 高度なセットアップ:その他のインストール方法」を参考にしています。 http://cakephp.jp/old_doc/ch03s04.html [アプリケーションディレクトリ] /home ____/me ________/mysite ____________/config ____________/controllers ____________/models ____________/plugins ____________/tmp ____________/vendors ____________/views ____________index.php ____________.htaccess→「htaccessファイル1」● [公開ディレクトリ] /var ____/www ________/html ____________/example.com→ドキュメントルート _______________/css _______________/files _______________/img _______________/js _______________.htaccess→「htaccessファイル2」● _______________css.php _______________favicon.ico _______________index.php [コアファイルディレクトリ] /usr ____/lib ________/cake ____________/cake ________________/config ________________/docs ________________/libs ________________/scripts ________________app_controller.php ________________app_model.php ________________basics.php ________________bootstrap.php ________________dispatcher.php ____________/vendors ____________/plugins ____________index.php ____________.htaccess→「htaccessファイル3」● 「htaccessファイル1」(アプリケーション) -------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine on   RewriteBase /cake/app→■追加  RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule> ------------------------------------------------- 「htaccessファイル2」(公開) -------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine On   RewriteBase / →■追加  RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> -------------------------------------------------- 「htaccessファイル3」(コア) -------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine on   RewriteBase /cake→■追加 RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule> -------------------------------------------------- 疑問点は下記のようになっています。 (1)追加した部分のRewriteBaseはこれで良いのか? (2)RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] の部分はこのままで良いのか?webroot部分の変更は必要か? (3)RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]の部分はこのままで良いのか?

    • ベストアンサー
    • PHP
  • .htaccesで任意のファイル名にアクセス

    サーバのhogeというディレクトリに「12345.php」というファイルを上げています。 (そのままアクセスすると、URLは「http://hogehoge.com/hoge/12345.php」。) このファイルを「http://hogehoge.com/hoge/12345.html」でアクセスしても表示されるようにしたく、 .htaccessに↓のように記述しました。 RewriteEngine on RewriteBase /hoge/ RewriteRule 12345.html 12345.php ここまでは問題なく動作しました。 ここからが質問なのですが、ファイルは「12345.php」だけでなく、 「56789.php」だったり「11111.php」だったり、とにかく「数字.php」が大量にある状態です。 これら全てを、 RewriteRule 12345.html 12345.php RewriteRule 56789.html 56789.php RewriteRule 11111.html 11111.php ・ ・ ・ と、書き連ねるのはあまりに効率が悪いのですが、他の書き方が分かりません。 どのように書けば単純化出来るのか、ご教示下さい。

  • ディレクトリ作成

    ユーザが入力した名前のファイルを作成するプログラムを作っているのですが、うまくいきません。 <html> <head> <title>データ受け渡し</title> </head> <body> <?php echo "<p>入力内容:".@$_POST["text1"]; $dir = /dir/$_POST["text1"]; mkdir($dir, 0777); ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table> <tr> <td><input type="text" name="text1"></td> <td><input type="submit" value="送信" name="sub1"></td> </tr> </table> </form> </body> </html> サーバの dir というディレクトリ内に 入力された名前のファイルを作りたいのですが、エラーが出てしまいます。 よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう