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>  

1つの大きな問題を除いて、これはうまく機能します。それは一種の..すべてをリダイレクトします。たとえば、最終出力が存在しない .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 に答える