6

.htaccess を使用してユーザーをメイン コントローラーにリダイレクトしていますが、正常に動作しています。しかし、存在しないjsファイルを呼び出すと、次のようになります。

<script src="/js/jquery1231231312.js"></script>

単に 404 - ファイルが存在しないと言う代わりに、この js ファイルは index.php のコンテンツを取得しています。どうすればいいですか?

これは私の .htaccess です

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
4

1 に答える 1

9

さて、あなたがそれをセットアップする方法で、すべてはを通してルーティングされますindex.php。存在しないリソースに対してリクエストが行われた場合、そのリソースはを介してルーティングされますindex.php。何かが存在しないことを認識して404エラーを返すのは、index.php次第ですが、url=存在しない場合はホームページを返すように設定されていると思います。

次の例のように、特定のファイルのルーティングを無視するようにルールを変更できます。

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/js/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

これにより、/jsディレクトリ内の何もルーティングされないindex.phpようになるため、誰かが/jsディレクトリ内に存在しないファイルを要求した場合、通常の404応答が返されます。


編集:

特定のファイル(js、css、画像)のルーティングを無視したいのですが、ファイルが存在しない場合は通常のエラーが発生するためです。

すべての画像、javascript、およびcssを無視する場合は、2行目は次のようになります。

RewriteCond %{REQUEST_URI} !\.(png|jpe?g|gif|css|js)$ [NC]
于 2012-08-23T21:48:05.543 に答える