У меня VPS под управлением Debian 7 с VirtualMin 4.12gpl и очень ванильной конфигурацией Apache 2.2.22, PHP 5.4.35 и MySQL 5.5.40 с WordPress 4.01.
У меня возникла очень странная проблема, когда определенные ресурсы (например, изображения и таблицы стилей) генерируют ошибки 403 для одних пользователей, а не для других.
Например, некоторые пользователи получают 403 при попытке загрузить эту таблицу стилей: http://lunchtime.org.uk/wp-content/themes/GLA5/style.css (Я не!)
Некоторые пользователи получают 403 при попытке загрузить это изображение: http://lunchtime.org.uk/wp-content/themes/GLA5/img/podcast.png (Я делаю!)
Я попробовал несколько вещей:
Я также попытался запустить (в качестве примера)
chown -R www-data:www-data podcast.png
вручную, но это не имеет никакого эффекта.
Возможно, стоит упомянуть, что я настроил один и тот же сайт на двух других VPS, таким же образом, и он работал просто отлично. Я перенес весь контент на этот сервер в понедельник, просто скопировав все файлы по FTP и выполнив экспорт / импорт базы данных в phpMyAdmin.
Вот файл .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Я не буду публиковать здесь весь журнал ошибок apache, но каждая ошибка выглядит так:
[Fri Nov 21 00:09:21 2014] [crit] [client 141.101.98.168] (13)Permission denied: /home/lunchtime/public_html/wp-content/themes/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
Спасибо.
нвм разобрался
…Я ребенок, я ребенок!
Недавнее обновление apache изменило синтаксис директивы FilterProvider. Как выяснилось, используемая мной версия стандартного файла HTML5 .htaccess использовала старый синтаксис.
Если вы столкнулись с этой проблемой, откройте файл .htaccess и выполните поиск
FilterProvider
В соответствии с этот комментарий Github (чьи инструкции я следовал), вы должны изменить любую строку, которая выглядит следующим образом:
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
В это:
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/html'"
Других решений пока нет …