のは、我々は次のスキーマを持っているとしましょう:システムルートにアクセスできないようにすることをお勧めしますか?
root/
application/
-public/
index.php
css/
img/
javascript/
...
system/
...
私は、次のルールとルートでの.htaccessファイルを作成する場合ことを考えていた:
RewriteEngine On
RewriteRule \.(css|jpe?g|gif|png|js|ico)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ application/public/index.php?url=$1 [QSA,L]
が、私は他のを作ることができるだろうpublic以外のフォルダはアクセスできません。 index.phpはアプリケーションが必要とするすべてのファイルをロードし、必要なものをインクルードして要求するファイルです(相対パスを間違えて):アプリケーションは実際にindex.phpで実行され、cssスタイルシート、画像、またはjavascriptスクリプトなどのすべてのパブリックファイルはパブリックフォルダにあります。したがって、www.site.com/の桁にroot/application/public /を参照するため、ユーザーとしてシステムフォルダにアクセスできません。私は正しい?
しかし、htaccessルールが設定されていません... htaccessをルートフォルダに入れて、ルートフォルダにアクセスしようとすると、ブラウザにルートフォルダのファイルの一覧が表示されますシステム)。なぜそれは働いていないのですか?
index.phpのルートフォルダにいたとき、私はこのしばらく前に使用:
RewriteEngine On
RewriteRule \.(css|jpe?g|gif|png|js|ico)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
、それがうまく働きました。なぜ新しいものが働いていないのですか?
あなたはまだ.htaccessを通してこれをしてはいけません。 1回のリクエストごとにリロードされます。これらのディレクティブを仮想ホスト定義に配置する必要があります。 – meagar
@meagar how?どこ?これは誰かのアプリケーションにダメージを与えますか、それとも遅くしますか? – Shoe
遅く、.htaccessが有効になっている必要があります。 – meagar