我有一个运行Debian 7的VPS,Virtualmin 4.12gpl和一个非常普通的Apache 2.2.22配置,PHP 5.4.35和带有WordPress 4.01的MySQL 5.5.40。
我遇到了一个非常奇怪的问题,其中某些资源(例如图像和样式表)为某些用户而不是其他用户生成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中执行数据库export \ import。
这是.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
谢谢。
答案 0 :(得分:0)
nvm想通了
......我生孩子,我小子!
apache的最新更新改变了FilterProvider指令的语法。事实证明,我使用的HTML5样板文件.htaccess文件的版本使用的是旧语法。
如果您遇到此问题,请打开.htaccess文件并搜索
FilterProvider
根据this Github Comment(我遵循的指示),您应该更改任何看起来像这样的行:
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
进入这个:
FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} = 'text/html'"