.htaccess文件访问

时间:2012-02-21 13:25:59

标签: regex apache .htaccess mod-rewrite

我有一个关于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

如果我在规则之前添加它会更好吗,或者它无关紧要?

2 个答案:

答案 0 :(得分:5)

通常在重写规则中包含RewriteCond %{REQUEST_URI} !-f是安全的,这样物理文件(如css,js,image等)不受这些规则的影响。

但是在你的情况下你的规则都不会影响这些css,js,图像文件,因为你没有在匹配的reular表达式中包含点字符.

要解决您的问题,我建议在您的css,js,图片文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以http://或斜杠/开头。

答案 1 :(得分:0)

js, css文件将由您的浏览器缓存。 但在你的情况下,对于评论中提到的路径&上面提到的改写。它不会影响。但是任何未来的重写规则都可能对这些规则产生影响。因此,最好添加RewriteCond %{REQUEST_FILENAME} !-f