ホームページ >バックエンド開発 >PHPの問題 >PHPでディレクトリリストを禁止する方法

PHPでディレクトリリストを禁止する方法

PHPz
PHPzオリジナル
2020-09-25 13:59:382773ブラウズ

PHP でディレクトリのリストを禁止する方法: 最初に「httpd.conf」ファイルを見つけて開き、次に「Options Indexes FollowSymLinks」の「Indexes」の前に「-」記号を追加し、最後に変更を保存します。 。

PHPでディレクトリリストを禁止する方法

推奨:「PHP ビデオ チュートリアル

Apache でディレクトリ ファイル一覧の表示を無効にする設定方法

仮想ディレクトリのアドレスを入力した場合: http://localhost:8080/b/

仮想ディレクトリにindex.htmlがない場合、ブラウザにはディレクトリ構造も表示されます。この仮想ディレクトリの下にあるファイルとサブディレクトリを一覧表示します。

Apache がディレクトリ一覧を表示しないようにするにはどうすればよいですか?

Apache がディレクトリ構造リストを表示しないようにするには、オプションのインデックスを削除するだけです。

たとえば、ディレクトリのディレクトリ構成を見てみましょう:

<Directory "D:/Apa/blabla">
    Options Indexes FollowSymLinks #----------> Options  FollowSymLinks AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

Apache がディレクトリ構造を表示しないようにするには、上の赤いコードのインデックスを削除するだけです。ユーザーには、このディレクトリ内のファイルとサブディレクトリのリストは表示されません。

Indexes の機能は、ディレクトリにindex.html ファイルがない場合にディレクトリ構造を表示することですが、Indexes を削除すると、Apache はディレクトリのリストを表示しなくなります。

このように設定した場合でも、ディレクトリ リストが表示される可能性があります。

<Directory / >
    Options  FollowSymLinks AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

2 番目の方法

httpd.conf ファイルを編集する httpd.conf ファイルを編集する

vi ./conf/httpd.conf

次のコンテンツを見つけます:

……
<Directory “C:/Program Files/Apache2.2/htdocs”>
    #
    # Possible values for the Options directive are “None”, “All”,
    # or any combination of:
     Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that “MultiViews” must be named *explicitly* — “Options All”
    # doesn’t give it to you.
    #
    # The Options directive is both complicated and important. Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be “All”, “None”, or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None
    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all
</Directory>
……

オプション インデックス FollowSymLinks のインデックスの前に – 記号を追加します。

つまり: Options -Indexes FollowSymLinks

[注: Indexes の前に、追加はディレクトリの参照を許可することを意味し、追加はディレクトリの参照を禁止することを意味します。 】

この場合、Apache 全体でディレクトリの参照が禁止されます。

仮想ホスト内の場合は、次の情報を追加するだけです:

<Directory “D:\test”>
     Options -Indexes FollowSymLinks
     AllowOverride None
     Order deny,allow
     Allow from all
</Directory>

この場合、テスト プロジェクトの下のディレクトリの参照は禁止されます。

注: 「すべてから許可」を「すべてから拒否」に変更しないでください。変更しないと、Web サイト全体を開けなくなります。

別の方法もあります。

ルート ディレクトリの .htaccess ファイルに

<Files *>
Options -Indexes
</Files>

と入力すると、Apache がディレクトリ構造をリストするのを防ぐことができます。

以上がPHPでディレクトリリストを禁止する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。