質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

1242閲覧

特定のフォルダにブラウザからアクセスできないようにしたい

tetutetutetu

総合スコア46

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

1クリップ

投稿2020/03/30 12:18

ある特定のフォルダに保存されているファイルに
ブラウザからアクセスできないようにしたいです。

https://example.com/hoge/というサイトで、
https://example.com/hoge/php/foo.phpというファイルが設置してあり、
foo.phpの内容をトップページなどから呼び出して表示しているのですが、
ブラウザからfoo.phpにアクセスした場合も表示できてしまうため、
ブラウザはブロックしたいです。

/hoge/php/に.htaccessを設置し、
以下を記述してみたのですが、
何も変わりませんでした。

order deny,allow deny from all allow from example.com

allow fromのところをサーバーのIPアドレスにしたら、
ブラウザからは表示できなくなりましたが、
今度は.jsファイルからgetJSONで呼び出しているファイルから
情報が取得できなくなりました。

/hoge/php/以下のファイルに対して。
ブラウザからはブロックし、
同じサーバーの.jsファイルや.phpファイルからの呼び出しはできるようにしたいです。
何か良い方法はないでしょうか?
できればIPアドレスではなくドメインで許可したいです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

解決策になるかわかりませんが
アプローチを変えてみてはいかがでしょうか?

ブロックするのではなくそのフォルダにアクセスしたらTOP(特定のページ)にリダイレクトするのはどうでしょう?

試しに.htaccessを書いてみたので試してみてください。
下記の例だと
https://example.com/hoge/php/
https://example.com/hoge/php/foo.php

上記にアクセスした場合、いかのURLにリダイレクトします。

https://example.com/hoge/
※正確にはhttps://example.com/hoge/php/../
※ブラウザ上はhttps://example.com/hoge/が表示されます。

%1が^/php/の部分になるのでそれ以降のパスはお好きな場所を指定してください

htaccess

1RewriteEngine On 2RewriteCond %{REQUEST_URI} (^/php/) 3RewriteRule ^.*$ %1../ [R=302,L]

※R=302は一時的なので永続的にする場合は301にしてください
※試す際はいったん302で試してください301だとキャッシュが強いらしくて.htaccessを置き換えただけじゃ反映しなくなります。

投稿2020/04/15 03:14

編集2020/04/15 03:39
mabe

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問