• ベストアンサー

.htaccessで下層ディレクトリの設定

/ index | +---/a(アクセス許可) | +---/b(アクセス拒否) 上記のように/aはアクセスを許可、/bはアクセスを拒否したいと思っています。 .htaccessをindexのあるディレクトリに置いて、/aと/bを制御する方法はありますでしょうか?

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

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

httpd.confからであればDirectory単位で設定を付け替えることが できますが、.htaccessからだと難しいようですね ルートに.htaccessをおいて、それと異なる設定の場合は そのディレクトリに別の.htaccessを置くのが普通かと

tella8
質問者

お礼

yambejp様 回答していただきありがとうございました。 ディレクトリ毎に設置というのが一般的なのですね。 そのようにしてみます。 ありがとうございます。

関連するQ&A

  • .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
  • .htaccessの使い方を教えてください。

    こんばんは、はじめまして。 こちらには初投稿になります。 リンクをクリックした際、普段はAというHPが普通に表示され、特定の場合のみBというHPに リダイレクトさせたいと考えています。 .htaccessを使いたいのですが、色々なサイトを調べても私が行いたい内容のことが書かれて おらず、どうすればいいのかが分かりません。 C.co.jpというホストからアクセスがあった場合のみ http:/d/index.html に転送したいのですが、うまくいきません。 RewriteEngine on RewriteBase / RewriteCond %{REMOTE_ADDR} .C.co.jp RewriteRule .* http:/d/index.html と書いたのですが、どこか問題がありますでしょうか? また、逆にC.co.jp以外からアクセスがあった場合にBのHPにリダイレクトする方法も教えていただけると うれしいです。 ちなみに.htaccessの設置場所はAのHPのindexファイルがあるディレクトリです。 どうか、アドバイスをよろしくお願いいたします。

  • .htaccessの設定について教えてください

    前回、以下の質問をしてアドバイスを頂きました。 http://okwave.jp/qa3176048.html .htaccessの設定について教えてください。 サーバはロリポップで借りています。 (マニュアルの設定例は読みました。) やりたいこと templates(Smartyテンプレートファイル用フォルダ) templates_c(Smartyキャッシュファイル用フォルダ) 上記のフォルダ内にあるファイルへ直接アクセス されないようにしたい。 質問 1. 「.htaccess」の設定は、このファイルを置いたディレクトリ以下にのみ 反映されるという解釈であっていますか? 2. 「特定のホスト・IPからのアクセスを許可、もしくは制限する方法」で 私がやりたいことの設定はできますか? 3.(2が可能な場合ですが) 以下はロリポップのマニュアルにある「特定のホスト・IPからの アクセスを許可する方法」の記述例を引用したものです。 「許可したいホスト・IP」の部分には何を記述したらいいのですか? 自分のホームページのドメインですか?   order deny,allow   deny from all   allow from .許可したいホスト・IP 4.2以外で良い方法があれば教えてください。 5. 「.htaccess」は見られても大丈夫なものなのでしょうか? セキュリティ上、何か設定が必要ですか?

  • htaccessでのアクセス制限について

    こんにちわ htaccessでのアクセス制限について質問があります。 wavファイルが置いてあるディレクトリがあるのですが、 そこへのアクセスを制限するため、 RewriteEngine on RewriteCond %{REQUEST_URI} !^.*/index\.html RewriteRule \.(wav)$ - [F] このようにindex.html以外からのアクセスに対して制限をしています。 しかしこれだと、index.htmlに置いてあるswfファイルからwavファイルを読み込む場合までアクセスが拒否されてしまいます。 index.htmlのswfファイルからのみwavへのアクセスを許可したいのですが、 どのようにすればよろしいのでしょうか?

    • ベストアンサー
    • Flash
  • .htaccess でのディレクトリを隠す方法について

    例えば、URLが、http://example.com/img/ で、 このimg ディレクトリ内のファイルを見られたくない場合、 通常は、index ファイルを設置しますが、 ディレクトリの数が多い為、いちいち設置が面倒なので、 .htaccess でindex を設置しなくても、/img/ 内のフォルダを 隠す方法があるみたいです。(Basic認証とは違います。) その方法を教えて下さい。

  • htaccessの設定について

    .htaccessについての質問です。 今までメインディレクトリ内に index.html aaa.html の2つがあるとします。 今回、新たにサブディレクトリを作って(sp/) その中に index.html をスマホ用閲覧の為に新たに作りました。 メインディレクトリ内に.htaccessを設置して スマートフォンからindex.htmlにアクセスすると自動で/sp/index.htmlに リダイレクトすることができました。 ただしサブディレクトリ内の sp/index.htmlの中にあるリンク(リンク先はメインディレクトリのaaa.html) にリンクすると/sp/aaa.htmlに切り替わってしまい、当然そのようなページがないので 「ファイルが見つかりません」と表示されてしまいます。 サブディレクトリーからメインディレクトリーにリンクさせる場合、/sp/を付加させないためにはどのように設定したらいいのか教えてくだい。 よろしくお願いいたします。 なお、今のメインディレクトリのhtaccessの記述は DirectoryIndex frontpage.php headpage.shtml index.html RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase / です。 よろしくお願いいたします。

  • .htaccessの有効範囲について

    .htaccessの有効範囲について .htaccessの有効範囲について疑問があります。設置されたディレクトリと、そのディレクトリ以下の全てのディレクトリに対して有効であるとの認識です。 http://example.com/.htaccess これは、 (1)http://example.com/にアクセスしてサーバーの設定によりhttp://example.com/index.htmlが表示された場合 (2)http://example.com/index.htmlに直接アクセスした場合 (3)http://example.com/abc/xyz.htmlにアクセスした場合 この3つ全てに適用されますよね? 私はそうだと思っていたのですが、実際は(1)の場合しか効果を発揮していません。 ということは、最後が/で終わるアドレスにしか有効ではないのでしょうか? そう言われると、「設置された"ディレクトリ"と、そのディレクトリ以下全ての"ディレクトリ"に対して有効」という文言もそういうことかというように読めるのですが、腑に落ちません。 もちろん私の.htaccessの書き方に問題がある可能性もありますが、その可能性を除いた場合、効果範囲はどうなるものなのでしょうか。 ご回答宜しくお願いいたします。 ちなみに、.htaccessの内容はユーザーエージェントを用いた携帯からのアクセスのリダイレクトです。 先日この件で質問をさせていただきまして、更に調べたところ上記のように効果範囲が限定されていることに気付きました。

    • ベストアンサー
    • HTML
  • .htaccessについて教えてください

    testというフォルダを作って、その中にindex.htmlを作り、このサイトをPCからのアクセスを拒否させたいと考えています。.htaccessでできることを知り、いろいろ調べているのですが、よく分かりませんでした。.htaccessファイルにどのように書けばいいのか、それをどこに置くのかなど、詳しく教えていただきたく思い投稿しました。よろしくお願いします。.htaccessはじめてです。

  • .htaccessでのディレクトリ観覧制御は完璧!?

    メールフォームで受け取った大切なお客さんの情報をログとして公開ディレクトリに置かなければならないことになり.htaccessでディレクトリすべての観覧を禁止しようと考えています。 メールフォームは mail.cgi で ログ保存ディレクトリは maillog/ です。 htaccessでブロックするため order deny,allow deny from all allow from www.hogehoge.com/mail.cgi としました。しかし聞いた話によるとhtaccessはブラウザのリファーラをチェックして判断しており悪意のユーザーが改造したブラウザを使用しリファーラを変換しログの観覧を可能にしてしまうのではないかと心配です。 この場合、やはりhtaccessでの完全なるmail.cgiのみのアクセス制御は実現できないのでしょうか? ほかの方法でさらにセキュアな方法があったらぜひ教えてください。

  • .htaccessでの設定について

    はじめまして。 .htaccessの設定で質問があります。 .htaccessで「AddType application/x-httpd-php .html」と設定し、 PHPのファイルをhtmlの拡張子で表示するようにしています。 全てのファイルで.htmlがPHPとして動作しないように、 <Files index.html> AddType application/x-httpd-php .html </Files> としています。 上記の設定でindex.htmlだけPHPとして動作すると思いますが、 これをあるDirectoryのindex.htmlだけに限定することはできないのでしょうか。 具体的には、 /htdocs/index.html では、PHPとして動作し、 /htdocs/test/index.html では、PHPとして動作しないようにしたいのです。 よろしくお願いします。