Wordpress 403/404错误:您无权访问此服务器上的/wp-admin/themes.php

时间:2010-05-07 00:44:50

标签: wordpress .htaccess http-status-code-404

一些背景知识:

我本周设置了6个博客,全部使用Wordpress 2.92,与Fantastico一起安装在Hostgator的婴儿鳄计划上。

我为每个博客使用了相同的主题(热图2.5.4)和插件。

它们都已启动并运行,完全没有问题。

我今天早上使用相同的设置创建一个新博客,当我尝试更改主题设置时,我收到以下错误:

Forbidden

You don't have permission to access /wp-admin/themes.php on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8n DAV/2 mod_fcgid/2.3.5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at http://www.mydomain.com Port 80

我尝试卸载WP并进行全新安装,但干净安装仍然存在同样的问题。

所以我回去检查了我在过去一周左右设置的其他六个博客,他们现在也在尝试更改主题设置时给我403或404错误,并且每次出现错误时都指向themes.php或functions.php

此时我正在努力找出问题所在。 Hostgator支持看着它,并认为这可能是一个权限问题,但他们重置了这些,我仍然遇到了问题。

起初我认为这个问题可能与我最近在前六个博客上安装的插件有关(ByREV Fix Missed Shedule插件)来处理WP 2.92错过的时间表错误,也许这已经破解了事情。但后来我查了一个我几个月前建的博客,也使用了相同的主题和插件,现在它也遇到了同样的问题。

有什么想法吗?我尝试删除我的htaccess,上传一个空白的,用我在hostgator论坛上找到的这个片段上传一个:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

没有任何效果。我每次仍然会收到403或404错误。一切都在昨天完美运作,所以我知道这个设置工作,我只是把某些东西搞砸了,而且我一无所知。

我在这里阅读了一个相关的主题,并尝试将wp-content文件夹chmod到0755并仍然存在问题。

有什么想法?谢谢!

9 个答案:

答案 0 :(得分:21)

迟了几年,但我有最新版WordPress的解决方案,它有同样的问题(WordPress生成的.htaccess文件中断网站,重新发送403 Forbidden错误消息)。这就是WordPress创建时的样子:

# 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

问题是条件不起作用。它不起作用,因为它正在寻找的模块不是.c,而是.so。我认为这是一个特定于平台或特定于配置的问题,其中为.so AKA'共享对象'模块设置了Mac OS和Lunix Apache安装。寻找一个.c模块不应该打破条件,我认为这是一个错误,但这是问题。

只需将mod_rewrite.c更改为mod_rewrite.so,您就可以了!

# BEGIN WordPress
<IfModule mod_rewrite.so>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

答案 1 :(得分:3)

我们发现技术人员的答案有帮助..这就是问题所在的htaccess ......

http://www.techieshelp.com/you-don%E2%80%99t-have-permission-to-access-wp-adminpost-php-on-this-server/

答案 2 :(得分:2)

为了跟进,问题解决了!我提到我的服务器的mod_sec设置是建议的可能罪魁祸首,他们能够解决这个问题。以下是技术经纪人在您支持时告诉他们的内容:

  

让他们知道你需要这个规则   340163将domain.com列入白名单   它达到了mod_sec规则。

显然,您需要为遇到此问题的每个域执行此操作,但它可以正常运行。感谢所有人的建议!

答案 3 :(得分:1)

你很幸运...我遇到了同样的问题但是对这个问题有更多的技术知识,并且能够确定这是一个mod_sec问题,hostgator必须自己修复/白名单。你不能自己做。只需要求hostgator tech检查服务器上的mod_sec设置。

享受固定的问题; D

答案 4 :(得分:0)

你有没有尝试过:

<Directory /path/to/your/wp-admin>
Order allow,deny
Allow from all
</Directory>

答案 5 :(得分:0)

您获得的第一个错误 - 权限 - 是最具指示性的。将wp-content和wp-admin压缩到777并尝试它,如果它可以工作,然后将它们更改回755并查看它是否仍然有效。你用什么来改变文件夹权限? FTP客户端?

答案 6 :(得分:0)

希望人们会找到这个答案,因为网上有很多很多帖子。很多人认为这是一个.htaccess问题,对我来说就是这样。但是,我一直在查找root中的.htaccess,而不是wp-admin文件夹中的.htaccess。 通常情况下,我通过终端服务在这个网站上工作,所以当它启动时我无法重新登录时,我试图从我的家用电脑(它是IP)访问它。

愚蠢的我忘记了我在wp-admin .htaccess文件中的IP限制。

AuthName "Protected"
AuthType Basic
<Limit GET POST>
order deny,allow
deny from all
allow from 11.11.11.11
</Limit> 

如果你的wp-admin .htaccess文件中有这样的东西,这很容易解释为什么你工作的所有网站都不能同时运行。互联网提供商偶尔会轮换IP,以便没有人在没有付费的情况下从家里运行服务器。

答案 7 :(得分:0)

我遇到了同样的问题,但上面没有任何工作......尝试一个非常简单的解决方案......

备份.htaccess文件。从根目录中删除它。然后尝试访问这些目录。您文件中的重写条件可能导致访问问题。应该在大多数主机上自动选取索引页面。 :P

答案 8 :(得分:0)

尝试从cPanel禁用ModSecurity。 登录到您的cPanel。找到类别“安全性”。您可以在其中找到ModSecurity链接。单击它,然后针对您遇到403错误的域将其禁用。

该方法也可以解决一些403错误。转到wordpress信息中心,设置>永久链接,然后单击保存。

希望这会有所帮助。 :)