Zend Frameworkは、要求されたファイルが実際に存在しない限り、すべての要求をindex.phpにルーティングするデフォルトの.htaccessを提供します。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
あなたはそれをより制限的にして、すべてをindex.phpにルーティングするかもしれません:
RewriteEngine On
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
これにより、たとえばCSSファイルへの追加のリクエストが不可能になることに注意してください。
[編集]
Drupalが提供する.htaccessを見てみるのもいいでしょう。そこでは、特定のパスとファイルタイプもブロックされます。Drupalの.htaccessの最初のディレクティブは次のとおりです。
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$">
Order allow,deny
</FilesMatch>
したがって、phpファイルとapplication
ディレクトリ内のすべてへのアクセスのみをブロックしたい場合は、おそらく次のようにします。
<FilesMatch "(\.php$|^application)">
Order allow,deny
</FilesMatch>
(私はhtaccessの専門家ではなく、コードが頭から離れているため、テストされていません。修正が必要な場合は、コメントにコメントを投稿するか、コードを直接編集してください)。