Wordpress 403/404 错误:您无权访问此服务器上的 /wp-admin/themes.php
Posted
技术标签:
【中文标题】Wordpress 403/404 错误:您无权访问此服务器上的 /wp-admin/themes.php【英文标题】:Wordpress 403/404 Errors: You don't have permission to access /wp-admin/themes.php on this server 【发布时间】:2011-02-16 15:32:46 【问题描述】:一些背景:
这周我建立了六个博客,全部使用 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 Plugin)有关,以处理 WP 2.92 错过的日程安排错误,这可能已经搞砸了事情起来了。但是后来我检查了一个我几个月前建立的博客,也使用了相同的主题和插件,现在它也遇到了同样的问题。
有什么想法吗?我尝试删除我的 htaccess,上传一个空白的,用我在 hostgator 论坛上找到的这个 sn-p 上传一个:
# 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 文件夹更改为 0755,但问题仍然存在。
有什么想法吗?谢谢!
【问题讨论】:
您是否检查了所有 .htaccess 文件(可能不止一个)并且它们从根目录向下级联。您是否对安装、插件等进行了任何其他更改。 我在安装前六个博客之后和创建新博客之前所做的唯一更改是安装一个插件,用于检查错过预定发布时间/日期的帖子,并强制他们继续并发表。我在所有六个博客上都安装了该插件,因为 WP 2.92 中存在导致错过帖子的错误。 我不确定那个插件是如何完成它的工作的,也许它在某处改变了一些权限?我检查了我几个月前安装的一个博客,没有错过的日程插件,但确实使用相同的主题,并且在访问 theme.php 时也遇到错误我检查了 htaccess 文件,是否有必要存在不止一个,或者我的根域应该只有一个? 您不需要拥有任何 .htaccess 文件,但您也可以在每个目录中从根目录向下的条目中拥有一个,在上述目录结构的更下方。我假设您检查的另一个博客在同一台服务器上。 我从我的根域中备份了 .htaccess 文件,并将它与我遇到问题的域之一中的 htaccess 一起删除,问题仍然存在(404 错误时试图改变主题设置,访问 wp-admin/themes.php) 【参考方案1】:晚了几年,但我有最新版本的 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
。我认为这是一个特定于平台或特定于配置的问题,其中 Mac OS 和 Luunix Apache 安装是为 .so
AKA 'shared-object' 模块设置的。寻找.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
【讨论】:
请不要在多站点上使用它【参考方案2】:我们在 techieshelp 上找到了答案。它的 htaccess 就是问题所在...
http://www.techieshelp.com/you-don%E2%80%99t-have-permission-to-access-wp-adminpost-php-on-this-server/
【讨论】:
【参考方案3】:只是跟进,问题解决了!我提到我的服务器的 mod_sec 设置是可能的罪魁祸首,他们能够解决这个问题。以下是技术代理在您寻求支持时要告诉他们的内容:
让他们知道你需要规则 340163 将 domain.com 列入白名单 它符合 mod_sec 规则。
显然,您需要为每个有问题的域执行此操作,但它确实有效。谢谢大家的建议!
【讨论】:
谢谢格伦。我遇到了类似的问题,我联系了 hostgator,他们说他们做了某种 mod seucrity 升级,并将域列入白名单。但他也表示它应该修复那个 cpanel 帐户中的所有内容。 谢谢您,遇到了同样的问题,您的回答让我与我的托管服务提供商进行了沟通。这正是代表向我提到的内容 - “LiveSupport_t3:对不起,您没有 shell 访问权限,我已经为您的问题完成了模式安全设置”【参考方案4】:你很幸运,我遇到了同样的问题,但对此事有更多的技术知识,并且能够确定这是一个 mod_sec 问题,hostgator 必须自行修复/列入白名单。你不能自己做。只需让 hostgator 技术人员检查您服务器上的 mod_sec 设置。
享受您已解决的问题;D
【讨论】:
【参考方案5】:您遇到的第一个错误 - 权限 - 是最具指示性的。将 wp-content 和 wp-admin 设置为 777 并尝试,如果有效,则将它们都改回 755 并查看是否仍然有效。你用什么来改变文件夹权限? FTP 客户端?
【讨论】:
我使用 FireFTP for Firefox 作为 FTP 客户端。当我更改权限时,它让我可以选择仅更改该目录的权限,还可以更改子目录和所有内容的权限。我应该更改所有内容的权限吗?我将包括内容都更改为 777,现在尝试登录 Wordpress 时收到 500 内部服务器错误。 不,也不是内容,但以后可以更改。 500 个错误来自您的 .htaccess;你是怎么编辑的?使用纯文本编辑器?在文本编辑器中使用错误的字符编码可能会导致 500 错误。如果您只是更改了 .htaccess 并且没有在 WP 管理员中更新永久链接,这可能意味着您的永久链接在 WP 数据库中设置为一件事,而在 .htaccess 中设置为另一件事。删除 .htaccess 摆脱 500 错误,看看你在哪里。 我不认为这些是 .htaccess 权限问题,因为我在安装 WordPress 时遇到了同样的错误(在我管理的 VPS 上运行)并且权限与此无关;它是.c
模块,而它本应寻找 .so
模块。我不知道为什么它会发生 403 错误,但对我来说这正是问题所在。看我的回答:***.com/a/9050019/362042你试过了吗:
<Directory /path/to/your/wp-admin>
Order allow,deny
Allow from all
</Directory>
【讨论】:
所以我应该使用它创建一个 htaccess 吗?我应该把它上传到哪里,到域的根目录?【参考方案7】:希望人们能找到这个答案,因为网络上有很多关于这个的帖子。很多人认为这是一个 .htaccess 问题,对我来说确实如此。但是,我一直在查看根目录中的 .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,这样就没有人不付费就在家中运行服务器。
【讨论】:
【参考方案8】:我也遇到了同样的问题,但以上方法都不起作用...尝试一个非常简单的解决方案...
备份您的 .htaccess 文件。从您的根目录中删除它。然后尝试访问这些目录。您文件中的任何重写条件都可能导致这些访问问题。大多数主机上应该会自动获取索引页面。 :P
【讨论】:
【参考方案9】:尝试从您的 cPanel 中禁用 ModSecurity。 登录到您的 cPanel。找到“安全”类别。在那里您可以找到 ModSecurity 链接。单击它并为您面临 403 错误的域禁用它。
有些403错误也可以通过这种方法解决。转到 wordpress 仪表板,设置>永久链接,然后单击保存。
希望这会有所帮助。 :)
【讨论】:
以上是关于Wordpress 403/404 错误:您无权访问此服务器上的 /wp-admin/themes.php的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress错误 - 抱歉,您无权访问此页面。将网站从一个域迁移到另一个域后
Wordpress 重新安装 - 您无权访问此服务器上的 /sitename/
HTTP常见错误 400/401/403/404/500及更多