我正在使用.htaccessredirect用户到我的主控制器,它工作正常。 但是当我调用一个不存在的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>
那么,你有它的方式设置,一切都通过index.php
路由。 如果请求的资源不存在,则通过index.php
进行路由。 这是由index.php来实现的东西不存在,并返回一个404错误,但我猜测它的设置,如果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,那么第二行应该是:
RewriteCond %{REQUEST_URI} !\.(png|jpe?g|gif|css|js)$ [NC]