在我的 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
文件. 但是,我真的不知道如何实现这一点,因此任何可以为我指明正确方向的方向或建议将不胜感激。