2014-11-21 68 views
1

我有一个运行Debian 7的VPS,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

例如,试图加载这个样式表时,一些用户收到403

我试过几件事情:

  • 更改权限没有任何效果。我甚至将其设置为777,并且违规文件仍然无法加载。另外,我可以通过FTP查看并下载文件。
  • 我认为mod_security可能是问题,但未安装
  • .htaccess文件对于WordPress安装来说看起来很正常。
  • 禁用缓存\ permalink相关的插件,并清除我自己的缓存不会做任何事情
  • 使用virtualmin的'修复文件所有权和权限'按钮什么也不做。

我也试着运行(作为一个例子)

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 

谢谢。

+0

防弹安全可能会改变.htaccess 440,将其更改为640. – Ohgodwhy 2014-11-21 00:15:32

+0

错误是权限的htaccess文件,而不是内容。 Apache需要能够读取它。 – 2014-11-21 02:12:13

回答

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