- 需求:
- 文件存在直接访问文件,文件不存在跳转到index.html。
- URL 以 /abc 开头的不跳转。
错误规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/abc
RewriteRule ^(.*)$ /index\.html
结果:无论文件是否存在都会跳转到index.html
原因: %{REQUEST_FILENAME} 是相对路径,会错误判断文件都不存在。
正确规则:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/ceis
RewriteRule ^(.*)$ /index\.html
改动:添加 %{DOCUMENT_ROOT}% 使用绝对路径。