0

我的问题

我在尝试使用带有 IIS 的 Wordpress 插件 W3 Total Cache 来缩小 URL 时遇到错误。

W3 Total Cache 错误:似乎缩小 URL 重写不起作用。请验证服务器配置是否允许 .htaccess 不幸的是,如果没有自定义重写规则,缩小将无法运行。请向您的服务器管理员寻求帮助。另请参阅安装页面以了解您的服务器的规则。技术信息

.htaccess 文件包含重写 url http://myurl.com/ :\Web\Public_Test2/wp-content/cache/minify/000000/w3tc_rewrite_test 的规则。如果由插件处理,则返回“OK”消息。该插件向 http://myurl.com/ :\Web\Public_Test2/wp-content/cache/minify/000000/w3tc_rewrite_test 发出请求,但收到:连接在 2016 毫秒后超时,而不是“OK”响应。

(注意:出于隐私考虑,我编辑了域名)我发现其中包含域的 URL 很奇怪,但我不知道如何更改它测试的默认 URL。如果来自主目录,它确实是 Web/Public_Test2/wp-content/cache/minify 但那里没有 000000 文件夹。

W3 总缓存建议

在插件的安装选项卡下,有一条供不使用 apache 的人使用的注释:

在不使用 Apache 的情况下,位于 WordPress 安装根目录的 .htaccess 文件 wp-content/w3tc/pgcache/.htaccess 和 wp-content/w3tc/min/.htaccess 包含必须手动执行的指令为您的 Web 服务器软件创建。

但是,不存在 w3tc 文件夹,只有一个 w3tc-config 文件夹,其中包含 master.php 和 master-admin.php 文件,没有 .htaccess 或子文件夹。我检查了 wp-config 下的缓存文件夹,并且任何子文件夹中都没有 .htaccess。所以我不确定如何更改 web.config 或使用什么指令。

我的尝试

我发现某处建议将这些重写规则添加到 web.config,我添加了它们,但它根本没有改变错误:

<rule name="w3tc_rewrite_test" stopProcessing="true">
    <match url="^wp-content/cache/minify/000000/w3tc_rewrite_test" />
    <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?w3tc_rewrite_test=1" logRewrittenUrl="true" />
</rule>
<rule name="w3tc-minify-test-file" stopProcessing="true">
    <match url="wp-content/cache/minify/(.+/[X]+\.css)$"  />
    <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?test_file={R:1}"  />
</rule>
<rule name="w3tc-minify-file" stopProcessing="true">
    <match url="wp-content/cache/minify/(.+\.(css|js))$"  />
    <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?file={R:1}"  />
</rule>
4

1 回答 1

1

我遇到了同样的问题,这是对我有用的解决方案:

W3 总缓存:版本 0.9.4.1

WordPress:版本 4.5.2

IIS:版本 7.5

服务器:Windows 2008 R2

我的 web.config 有这些规则:

<rewrite>
  <rules>
            <clear />
            <rule name="w3tc-minify-file" stopProcessing="true">
                <match url="wp-content/cache/minify/(.+\.(css|js))$" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                <action type="Rewrite" url="wp-content/plugins/w3-total-cache/pub/minify.php?file={R:1}" />
            </rule>
            <rule name="wordpress" enabled="true" patternSyntax="Wildcard">
                <match url="*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php" />
            </rule>         
        </rules>
</rewrite>

当我将 w3tc-minify-file 规则放在我的 wordpress 规则下时,它不起作用,并且我在 W3TC 创建的所有缩小文件上都收到 404 错误。

我正在使用手动模式缩小并结合我的 css 和 js 文件,它工作得很好。希望它可以帮助某人。

使用自动缩小模式的机会非常低,所以我绝对建议使用手动模式以获得最高的成功机会。我有 3 个 JS 文件和 2 个 CSS 文件我无法合并/缩小,因为它们破坏了我的网站。手动模式为您提供最大的控制权,因此请花一些时间添加每个文件,直到您尽可能地拥有它。

于 2016-06-06T21:38:17.053 回答