【问题标题】:.htaccess file access.htaccess 文件访问
【发布时间】:2013-10-05 04:43:01
【问题描述】:

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

如果我在我的规则之前添加它会更好,还是没关系?

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite


    【解决方案1】:

    通常在重写规则中包含RewriteCond %{REQUEST_URI} !-f 是安全的,这样css、js、图像等物理文件就不会受到这些规则的影响。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 但即使在清除缓存后它也能正常工作。那么添加它重要吗?
      • @EscoMaji 您的js, css 文件的路径是什么样的?
      • 我有:/js/file.js 和 /css/versionx.css
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 2021-11-26
      相关资源
      最近更新 更多