2

我已经为我的 WordPress 网络安装了 W3 总缓存,除了 Minifier 部分之外,一切都运行良好。

当设置为“自动”时,插件需要访问此路径:

/wp-content/cache/minify/000006/M9AvLqnMSQUA.css

但是它中断了,因为 Wordpress 将它重定向到 404.php 模板,认为它是一个页面/永久链接。

我可以在我的 .htaccess 中放入什么内容或更改权限以允许直接访问此路径,以便缩小脚本可以工作吗?

到目前为止,这是我的 .htaccess 文件中的内容(包括所有总缓存设置)

# BEGIN W3TC Minify cache
<IfModule mod_rewrite.c> 
    RewriteEngine On
    RewriteBase /
    RewriteRule ^[_0-9a-zA-Z-]+/wp-content/cache/minify/[0-9]+/w3tc_rewrite_test$ /wp-content/plugins/w3-total-cache/pub/minify.php?w3tc_rewrite_test=1 [L]
</IfModule>
# END W3TC Minify cache

# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
        AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json
    <IfModule mod_mime.c>
        # DEFLATE by extension
        AddOutputFilter DEFLATE js css htm html xml
    </IfModule>
</IfModule>
# END W3TC Browser Cache

# BEGIN WordPress
<IfModule mod_rewrite.c> 
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]

    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
    RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
</IfModule>
# END WordPress
4

2 回答 2

3

几个月来我已经遇到了同样的问题,我想我已经解决了。这与文件权限有关。

要确定这是否是您的问题,请尝试导航到http://yourdomain.com/wp-content/plugins/w3-total-cache/pub/minify.php。如果您收到 404,则可能是文件权限问题。你应该得到一个空白页。

检查文件权限,如果任何插件目录设置为 775 和/或任何文件设置为 664,那么这也表明权限错误。

修理:

将所有这些文件夹的权限更改为755,确保包括所有子目录,仅文件夹。

/wp-content/plugins
/wp-content/cache
/wp-content/w3tc-config

更改目录权限

还要确保文件正确设置为644,方法是使用仅在 filezilla 中应用到文件

/wp-content/plugins
/wp-content/cache
/wp-content/w3tc-config

更改文件权限

执行此操作后,您可能必须清空缩小缓存,并且根据它是否立即工作,您可能必须在清空缓存并重试后重做权限。

于 2014-03-20T15:51:05.803 回答
0

您没有W3TC 如何确定将其重写规则放在何处的注释# BEGIN WordPress和注释 - 请查看第 19 行(假设您拥有最新版本)。# END WordPress/wp-content/plugins/w3-total-cache/inc/functions/rule.php

基本上,WordPress 会在请求到达 W3TC 重写之前拦截请求,并且您会得到 404。通过将此部分移至 W3TC 规则下方,他们将在重写进入 WordPress 部分之前捕获它([L]重写末尾说匹配是要遵循的[L] ast 规则),正确地将 URL 重写到您的缩小缓存并且不会导致 404。

我的多站点安装中的“官方”(自动生成)WordPress 块如下所示,应该是.htaccess文件中的最后一组重写规则,位于 W3TC 部分下方。确保包含注释,因为其他插件在更新此文件时可能会查找它们。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress
于 2013-03-25T06:11:14.003 回答