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

时间:2015-02-09 18:21:41

标签: php apache .htaccess mod-rewrite httpd.conf

我在httpd.conf中有这些行,它们将所有url作为单个参数('name'),当我键入一个不存在的名称时,index.php正确加载并且显示404消息。但问题是JavaScript, CSS and other assets are not loaded.即使目录/文件不存在,如何加载这些文件。 ?我正在使用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=$1 [QSA,L]
    </IfModule>
</Directory>

1 个答案:

答案 0 :(得分:1)

通常,FallbackResource指令是一种更清晰,更高效的方式来实现您在此处尝试的目标:

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

而不是mod_rewrite的东西,只需写下:

FallbackResource index.php

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