• ベストアンサー

.htaccess でのディレクトリを隠す方法について

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

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

  • ベストアンサー
  • dezimac
  • ベストアンサー率56% (2365/4208)
回答No.1
参考URL:
http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/directory.html#directory2
mikichan-e
質問者

お礼

ご回答ありがとうございました。 助かりました。

関連する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の有効範囲について

    .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に<directory ディレクトリ名> </directory>の設定可能?

    <directory ディレクトリ名> </directory>の設定は、通常アパッチのhttpd.confなどに行なわれますが、.htaccessに<directory ディレクトリ名> </directory>の設定は、可能なのでしょうか? .htaccessを置いたディレクトリ内のサブディレクトリを、サブディレクトリ毎に設定したいのです(でも、サブディレクトリ毎に.htaccessを置くと管理がめんどくさい。)。 よろしくお願いします。

  • 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で可能でしょうか?

    レンタルサーバーを借りています。 そこでは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でルートディレクトリ変更(?)

    こんにちは、お世話になっております。 以下のようなディレクトリ構造をしておりまして(分かりにくくて申し訳ないです...)、 / ├ dev │ ├/img │ ├/js │ ├/dir_1 │ │ └index.html │ └index.html └index.html ルート直下にdevというディレクトリがあります。 dev配下でサイトを作り、完成したらルートにあげたいと思っていたのですが、 dev配下のページで、仮に画像の読み込みを<img src="/img/image_01.jpg" />とすると、 当然ながらルート直下のimgを参照しにいき、画像が読み込まれない状態になります。 リンク関係も同様です。 .htaccessで、dev配下のhtml全てに対し、「/」を「/dev/」と置き換えるようにさせる設定はありますでしょうか。 アドバイス頂けたらと思います。 よろしくお願い致します。

  • .htaccessについて教えて下さい。

    .htaccessについて教えて下さい。 [.htaccess] AuthUserFile /home/ユーザー名/public/www/aa_cgi/.htpasswd AuthGroupFile /dev/null AuthName ByPassword AuthType Basic require valid-user ハッスルサーバーを使っています。 上記でキチントaa_cgiのフォルダにアクセス制限がかかります。 動作は問題ありません。 しかし、アクセス制限していない htmlファイル(top.html)を開くと パスワード認証の画面が表示されるのです。 何故こんな事が起こるのか、どなたかおおしえ下さい。よろしくお願い申し上げます。 |-aa_cgi(制限したいディレクトリ) | |-.htaccess | |-.htpasswd | |-top.html |-link.html |-index.html |-pic.html aa_cgiのフォルダと同じ階層に top.html link.html index.html pic.html があります。.htaccessはaa_cgiのフォルダの中にあります。 なのになぜか、top.htmlだけパスワードを聞かれます。他のlink index pic ファイルは開いてもパスワードを聞かれません。

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

    htaccessを用いてあるディレクトリにBasic認証をかけたいと思っているのですが、httpd.conf設定後、.htaccessを所定位置を置いたところそのディレクトリが見えなくなってしまいました。その結果、所定位置のindex.htmlにアクセスできず、Basic認証のダイアログボックスも現れずInternal Errorなるものが出力されました。 このエラーにつきまして、見当がつくかた、アドバイスをお願いします。

  • .htaccess について

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

  • htaccess rewrite 無限ループ

    すでにあるサイトにhtaccessを設置して、 rewriteで日本語のファイル名でアクセスさせる方法を模索しています。 例↓ ・「http://www.example.jp/index.php」でアクセスされたら「http://www.example.jp/インデックス」 にリダイレクト。 ・「http://www.example.jp/インデックス」でアクセスされたら「index.php」 を表示させる。 htaccessの例↓ Options +FollowSymLinks RewriteEngine on RewriteRule ^index\.php$ /インデックス [R=301,L] RewriteRule ^インデックス$ index.php [L] 上記の設定だと無限ループになってしまいます。 index.phpでアクセスされたら404を返す方法も考えましたが・・・もっといい方法はないでしょうか?

    • ベストアンサー
    • PHP