9

HTML5 Boilerplate ( http://html5boilerplate.com/ )的.htaccess缓存设置很棒,但我遇到了 JS 和 CSS 版本控制的缓存破坏设置的问题。

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
</IfModule>

我似乎无法让它与.htaccess文件中已经存在的 WordPress 重写设置一起使用。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>

充其量,我的 JS 文件的重写永远不会发生。在最坏的情况下,它会破坏网站。

任何人都幸运地让它与 WordPress 一起工作?

4

3 回答 3

0
  • 确保您的缓存破坏 URL 实际匹配重写模式 (script.0.js)
  • 将缓存清除重写规则放在WordPress之前
  • 如果您可以访问服务器配置并读取日志,请设置RewriteLog 2(或更高),然后查看重写日志。他们很难理解,但他们可以给你一些线索。
  • “在最坏的情况下,它会破坏网站。” 如果这意味着您收到 500 服务器错误,请检查您的服务器日志——它会告诉您是否存在重写循环。

将 WordPress 的规则更改为

RewriteRule ^[\w/-]+$ /index.php [L]

看看是否有帮助。

充其量,我的 JS 文件的重写永远不会发生。

您看到的是 WordPress 的“未找到”响应还是 Apache 的?

在最坏的情况下,它会破坏网站。

Apache 服务器错误或 WordPress 错误?

于 2013-10-10T17:23:41.923 回答
0

试试这些

<IfModule mod_expires.c>
  ExpiresActive off
</IfModule>
<IfModule mod_headers.c>
  Header unset Cache-Control
</IfModule>
于 2015-02-17T22:32:00.357 回答
0

您可以将一些 php.ini 设置嵌入到您的 .htaccess 中,然后测试网站的更改,只是为了测试您的 .htaccess 文件是否工作?

在大多数情况下我都经历过,有一些基于 CentOS 5.5 的系统没有显示的隐藏文件(不知道它是否已知错误)。但是,如果您创建一个具有相同名称的新文件 .htaccess,您将看到与原始文件不同的几行。

只是意味着两者都是两个不同的文件。因此,只需尝试检查哪个与您的网站一起使用。此外,对于压缩 JS 和 CSS 文件,我在这里写了一个非常详细的教程 http://www.codeandcommand.com/web-based/how-to-optimize-joomla-3-x-pagespeed.html

于 2014-04-28T14:53:47.343 回答