我的问题
我在尝试使用带有 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>