htaccessでアクセス制限をかけたいのですが、ディレクトリ単位ではなく、以下のような場合にもかけることができますか?
http://xxx.xxx.xxx/aaa.php?id=1
にはアクセス制限をかけたいが、
http://xxx.xxx.xxx/aaa.php?id=2や、
http://xxx.xxx.xxx/aaa.php?id=11にはかけたない
ということはできるのでしょうか?
一般的には出来ないと考えます。
http://httpd.apache.org/docs/2.0/ja/sections.html
php ファイル側でやるほうが自然ですね。
ただ、mod_rewrite を使えば出来なくもないです。
RewriteEngine On RewriteCond %{QUERY_STRING} id=1 RewriteRule .* - [FL]
この設定は説明のために簡素化してあるのでそのままは使用しないほうが良いと思います。
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/block.html
http://www.futomi.com/lecture/htaccess/files.html
できると思いますが。
ありがとうございます。
リンク先を見たのですが、ファイル単位まではわかるのですが、クエリ文字までの指定でもいけるのでしょうか?
やはりPHPでの処理が一番かと思います。
PHPでは基本認証を実装することができるので(http://www.komonet.ne.jp/~php/program/ninsho/chap2.htm)あとは引数からアクセスさせるかさせないかを処理すればよいかと。
スクリプトの上側に以下を加えます。
if ($_GET['id'] === "1") { //BASIC認証を開始 //もしBASIC認証が失敗した場合die()などを使用し表示させない。 } else { //idが1以外の場合 }
間違っていたらごめんなさい。
やはりプログラムに手を入れる必要があるんですね。
ありがとうございました。
ありがとうございます。