mod_rewrite 如果找不到文件则加载 css 和 js

mod_rewrite load css and js if file not found

我的 httpd.conf 中有这些行,它们使所有 url 作为单个参数 ('name'),当我键入一个不存在的名称时 index.php 已正确加载并显示 404 消息。但问题是 JavaScript, CSS and other assets are not loaded. 即使 dir/ 文件不存在,如何加载这些文件。 ?我正在使用 relative paths。谢谢 ;)

<Directory  "c:/Apache24/htdocs/public">
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.+)$ index.php?name= [QSA,L]
    </IfModule>
</Directory>

一般来说,FallbackResource 指令是一种更简洁、更高效的方式来实现您在这里尝试做的事情:

http://httpd.apache.org/docs/trunk/mod/mod_dir.html#fallbackresource

而不是 mod_rewrite 的东西,只写这个:

FallbackResource index.php

在 PHP 脚本中,您可以将 PATH_INFO 环境变量转换为您用来捕获 name 参数的任何变量。