私のサイトは、'pages' ディレクトリ (PHP) からページを含めることで機能します。そのディレクトリ内のファイルへのアクセスを禁止したいと考えています。ただし、そこに .htaccess ファイルを配置すると: deny from all
、ファイルをインクルードしたりスタイルシートを使用したりする要求だけでなく、すべてのファイルへのアクセスが禁止されます。
また、次のようにそれらのファイルを見ようとすると、ユーザーを別のページに誘導しようとしました。
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} \.css[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} \.js[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
そして、それはうまくいきます.stylesheets/jsをロードさせません. PHP ファイルを含めることはできますが、表示することはできません。これは素晴らしいことです。しかし、私の css ファイルには、ハッカーに漏らしたくないファイル構造に関する情報が含まれています。だから、私はそれらを一般に公開したくありません。
とにかく...私の質問は、リクエストがクライアントからのものである場合にのみ適用される最後の2つを前に置くことができるものはありますか
?
すなわちRewriteCond
RewriteCond %{THE_REQUEST} IS_COMING_FROM_A_CLIENT_OR_BROWSER
RewriteCond %{THE_REQUEST} \.css[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
RewriteCond %{THE_REQUEST} IS_COMING_FROM_A_CLIENT_OR_BROWSER
RewriteCond %{THE_REQUEST} \.js[\ /?].*HTTP/
RewriteRule ^.*$ index.php?path=1 [QSA]
PS私はdeny from all
共有ホスティングを使用しているので、可能であればそれをやりたくないので、彼らはそれを好まないかもしれません.