我有一个关于css文件和js文件的.htaccess文件访问的问题
我有这个:
RewriteEngine On
RewriteBase /
RewriteRule ^$ index.php?page=index [L,NC]
RewriteRule ^([a-z0-9]+)/?$ index.php?page=$1 [L,NC]
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/?$ index.php?page=$1&subpage=$2 [L,NC]
现在,我意识到一些文件(如js,css)正确加载而不使用:
RewriteCond %{REQUEST_URI} !-f
如果我在规则之前添加它会更好吗,或者它无关紧要?
答案 0 :(得分:5)
通常在重写规则中包含RewriteCond %{REQUEST_URI} !-f
是安全的,这样物理文件(如css,js,image等)不受这些规则的影响。
但是在你的情况下你的规则都不会影响这些css,js,图像文件,因为你没有在匹配的reular表达式中包含点字符.
。
要解决您的问题,我建议在您的css,js,图片文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以http://
或斜杠/
开头。
答案 1 :(得分:0)
js, css
文件将由您的浏览器缓存。
但在你的情况下,对于评论中提到的路径&上面提到的改写。它不会影响。但是任何未来的重写规则都可能对这些规则产生影响。因此,最好添加RewriteCond %{REQUEST_FILENAME} !-f
。