7

次のような .htaccess ファイルがあります。

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)$ index.php [NC,L]

このファイルは Web ディレクトリにあります。ファイルがある場合、このルールに強制的に書き換えを停止させる方法はありますか?

例: css/style.css ファイルがありますが、mod_rewrite ルールが機能しているため、サーバーは 404 を返します。mod_rewrite をオフにすると、ファイルが見つかります。

4

2 に答える 2

11

はいあります:

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^(.+) - [PT,L]

  RewriteRule ^assets/(.*)$ public/assets/$1 [L]
</IfModule>

条件の最初のブロックと最初のルールは既存のファイルとフォルダーに適用され、2 番目のルールはファイルまたはフォルダーがない場合に実際に書き換えが発生する場合に適用されます。

于 2013-10-15T12:37:00.020 に答える
9

クレジットはhttp://amandine.aupetit.info/135/apache2-mod_rewrite/にあります

仮想ホストで%{REQUEST_FILENAME}は、ファイル システムに相対的なファイル パスと一致しないため、次を使用する必要があります。

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d

または、 を使用した同等の構文!-fのどちらでも構いません。

于 2016-09-19T21:40:50.173 に答える