仅在某些内容上为某些用户提供了403禁止错误

时间:2014-11-21 00:04:19

标签: php wordpress apache .htaccess http-status-code-403

我有一个运行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(我愿意!)

我尝试了一些事情:

  • 更改权限无效。我甚至将其设置为777,并且仍然无法加载有问题的文件。另外,我可以通过FTP查看和下载文件。
  • 我认为mod_security可能是问题,但未安装
  • .htaccess文件对于WordPress安装看起来很正常。
  • 禁用缓存\永久链接相关插件,并清除自己的缓存
  • 使用virtualmin的“修复文件所有权和权限”按钮不执行任何操作。

我也尝试过跑步(例如)

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

谢谢。

1 个答案:

答案 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'"