通过index.php路由每个请求(包括图像、css等)


Route every request through index.php (including images, css, etc.)

(此处为php新手)

我正在为一个几乎静态的营销网站写一个非常简单的路由器。到目前为止,我已经通过我的index.php.处理了每一个与文件不匹配的请求

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index'.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . /index.php [L]
</IfModule>

在我的index.php中,我决定输出什么。这运行得很好。

但是,如果用户专门浏览到我不希望他们访问的文件,会发生什么?它不会通过我的index.php。所以我可以删除那个条件。。。但是css文件呢?我想我也可以包括这些。但是。。。图像呢?

我想还有一种更好的方法,我只是还不知道。

(一个请求:请不要建议使用框架。在使用别人的代码之前,我想了解一下事情是如何工作的。)

更改"重写"条件以包括排除的文件类型列表:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index'.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !'.(png|jpg|gif)$
    RewriteRule . /index.php [L]
</IfModule>