Gui*_*nda 4 apache .htaccess mod-rewrite
我正在使用.htaccess将用户重定向到我的主控制器,它运行正常.但是当我调用一个不存在的js文件时:
<script src="/js/jquery1231231312.js"></script>
Run Code Online (Sandbox Code Playgroud)
而不是只说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>
Run Code Online (Sandbox Code Playgroud)
好吧,你设置它的方式,一切都被通过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]
Run Code Online (Sandbox Code Playgroud)
这将使得/js目录中的任何内容都不会被路由通过index.php,因此如果有人请求目录中的不存在的文件/js,他们将只获得常规的404响应.
编辑:
这就是我想要的,忽略某些文件(js,css,images)的路由,因为如果文件不存在我会得到正常的错误!
如果你想忽略所有图像,javascript和css,那么第二行应该是:
RewriteCond %{REQUEST_URI} !\.(png|jpe?g|gif|css|js)$ [NC]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7682 次 |
| 最近记录: |