use*_*156 5 apache mod-rewrite
我有一个.htaccess文件,如下所示:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)$ index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)
我的网页目录中有这个文件.如果有文件,有没有办法强制此规则停止重写?
例如:我有一个css/style.css文件,但服务器返回404,因为mod_rewrite规则有效.如果我关闭mod_rewrite,则找到该文件.
就在这里:
<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>
Run Code Online (Sandbox Code Playgroud)
第一个条件块和第一个规则应用于现有文件和文件夹,第二个规则应用于在没有文件或文件夹时应该发生的实际重写.
归功于http://amandine.aupetit.info/135/apache2-mod_rewrite/
对于虚拟主机,%{REQUEST_FILENAME}与文件系统相关的文件路径不匹配,因此您必须使用:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d
Run Code Online (Sandbox Code Playgroud)
或者使用它的等效语法!-f,无论你喜欢什么.
| 归档时间: |
|
| 查看次数: |
5361 次 |
| 最近记录: |