【发布时间】:2015-01-19 01:04:05
【问题描述】:
我有一个运行 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(我愿意!)
我尝试了一些方法:
- 更改权限无效。我什至将其设置为 777,但仍然无法加载有问题的文件。此外,我可以通过 FTP 查看和下载文件。
- 我认为 mod_security 可能是问题所在,但没有安装
- .htaccess 文件对于 WordPress 安装来说看起来很正常。
- 禁用缓存\永久链接相关的插件,并清除我自己的缓存没有任何作用
- 使用 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
谢谢。
【问题讨论】:
-
防弹安全可能正在将 .htaccess 更改为 440,将其更改为 640。
-
错误是 htaccess 文件的权限,而不是内容。 Apache 需要能够读取它。
标签: php wordpress apache .htaccess http-status-code-403