#php #.htaccess #wordpress #w3-total-cache
#php #.htaccess #wordpress #w3-total-cache
Вопрос:
У меня есть сайт WordPress, на котором я размещаю свой блог. Недавно, без каких-либо (сознательных) изменений в конфигурации, я начал сталкиваться с проблемами, когда на главной индексной странице Content-Type
text/plain
отображалось значение, а не правильное text/html
, что приводило к тому, что посетители видели исходный код, а не отображаемую страницу.
Я использую плагин W3TC Browser Cache и сузил проблему до этой части .htaccess
файла:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{HTTP_COOKIE} w3tc_preview [NC]
RewriteRule .* - [E=W3TC_PREVIEW:_preview]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{REQUEST_URI} /$
RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
RewriteCond %{HTTP_USER_AGENT} !(W3 Total Cache/0.9.4) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core
Если я удалю этот раздел из .htaccess
файла, эта страница загрузится нормально, с правильным Content-Type
. Однако W3TC любит восстанавливать этот блок через некоторое время после его удаления, и проблема возвращается.
Комментарии:
1. Вызывает ли у вас WordPress Super Cache те же проблемы?
2. Я переключился на Super Cache (используя кэширование PHP, чтобы не касаться th .htaccess) и пока все хорошо. Спасибо