Apache RewriteCond RewriteRule 跳转故障解决

  • 需求:
    • 文件存在直接访问文件,文件不存在跳转到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}% 使用绝对路径。

你可能感兴趣的:(Linux)