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

ディレクトリのパーミッションの変更

また、filezilla でのみファイルに適用を使用して、ファイルが644に正しく設定されていることを確認します。

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

ファイルのパーミッションの変更

これを行った後、縮小キャッシュを空にする必要がある可能性が高く、すぐに機能するかどうかによっては、キャッシュを空にして再試行した後、権限をやり直す必要がある場合があります。

于 2014-03-20T15:51:05.803 に答える
0

W3TC が書き換えルールを配置する場所を決定する方法である と のコメントがありません - の 19 行目を確認してください# BEGIN WordPress(最新バージョンを持っていると仮定します)。# 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 に答える