2

私の .htaccess ファイルでは、フォルダーへの直接アクセスを防ぐために以下を使用しています。

Options -Indexes

私たちの重要なファイルへのアクセスを防ぐために、以下を使用しています。

<Files admin.php>
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from (my ipaddress)
</Files>

そのため、404 エラーがスローされるため、ユーザーは www.domain.com/scripts にアクセスできず、admin.php にもアクセスできません。

しかし、すべてに直接アクセスできないようにするにはどうすればよいでしょうか?

たとえば、誰かがファイル名を知っていても、次のようにアクセスできます: www.domain.com/scripts/process.php

何をすべきか?

4

1 に答える 1

2

mod_rewrite の使用:

このルールを他のすべてのルールの上に置きます。

RewriteRule ^scripts(/.*|)$ - [F,NC]

mod_rewrite を使用しない場合:

このコードをscripts/.htaccess:

Order Deny,Allow
Deny from all

更新:すべてのファイルへの直接アクセスをブロックするには:

# If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{THE_REQUEST} \..+[\s?]
# return forbidden error if not static files
RewriteRule (?!^.+\.(?:jpe?g|gif|bmp|png|tiff|css|js)$)^.*$ - [F]
于 2013-09-12T18:09:08.767 に答える