0

在我的 CodeIgniter 应用程序中,我使用特定的过程来捕获和处理 404。这就是我想要的样子。我想出了这个 .htaccess 文件来满足我的需求:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 index.php
</IfModule>  

Wich 效果很好,除了一个主要问题。它重定向了一种..一切。例如,假设我的最终输出引用了一个不存在的 .css 或 .js 文件。这将导致我的应用程序在实际上不需要时再次重新运行所有内容。

我对此的解决方案是忽略static文件夹(我的项目的根目录 - 与 相同的文件夹index.php)和每个.css/.js文件. 但是,我真的不知道如何实现这一点,因此任何可以为我指明正确方向的方向或建议将不胜感激。

4

1 回答 1

3

添加另一个条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(static|(.*)\.css|(.*)\.js)

RewriteRule ^(.*)$ index.php?/$1 [L]

添加此行告诉 .htaccess处理静态目录内容。

于 2012-08-06T19:16:22.300 回答