【问题标题】:HTTP Error 403 Forbidden Issue in WordpressWordPress 中的 HTTP 错误 403 禁止问题
【发布时间】:2018-10-22 10:21:43
【问题描述】:

我安装了最新版本的 wordpress 和 woocommerce。过去几个月我面临的问题是,有时当我尝试从我的 Windows 10 笔记本电脑访问网站时,它会显示空白页 -

无论我在笔记本电脑上使用哪种浏览器,都会发生这种情况。我尝试使用 Chrome、Firefox 和 Edge。当我清除浏览器的历史记录和缓存时,我的网站开始正常加载。该问题会影响整个网站,包括管理部分、主页或任何其他页面。

由于某种原因,这个问题只出现在我的笔记本电脑上。我从来没有在我的安卓手机上遇到过这个问题。我什至检查了在我的手机和笔记本电脑上同时加载网站。虽然它在移动设备上正常加载,但我在笔记本电脑上遇到了同样的问题。

当页面显示为空白时,我决定检查该页面的源代码。在源代码中,我可以看到它显示错误“HTTP 错误 403 - 禁止访问。Web 服务器配置为不列出此目录的内容,或者您​​没有足够的权限访问该资源”.

源代码如下。有人可以告诉这个问题是什么吗?我在相同的托管计划上有另一个 wordpress 网站,它从来没有遇到过这个问题。站点名称是 oldbookdepot(dot)in

<!DOCTYPE html>
<html>
<body>
  <script>

  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML =
      this.responseText;
      document.getElementById("first-header").innerHTML = "HTTP Error 403 - Forbidden";
      document.getElementById("second-sub-header").innerHTML = "The Web server is configured to not list the contents of this directory or you do not have enough permissions to access the resource";
      var get=document.getElementsByTagName("A");
      for(i=0; i<get.length; i++){
        get[i].removeAttribute("onmouseover");
        get[i].removeAttribute("onmouseout");
      }
    }
  };
  xhttp.open("GET", "/errors/MultiDomainHosting.php", true);
  xhttp.send();

  </script>
<style>

.wrapper{
  overflow-y: hidden;
  padding: 0px;
  margin:0px;
  background: none !important;
  width: 100% !important;
}
.header-container {
  text-align: -webkit-center;
  width: 100%;
  height: 150px;
  background: white;
  padding-top: 20px;
  padding-bottom: 20px;
  font-size: larger;
}
.header-container > p,h1 {
  padding:5px;
}
.header-container > p {
  color: #707070;
}
.header-container > h1 {
  color: #333333;
}
.content-container {
  position: absolute;
  background-color: #202020;
  height: 635px;
  width: 100%;
}
.dynamic-content {
  position: relative !important;
  padding: 0 10em 0 10em;
  top: -50px;
}
.dynamic-content > div {
  border-style: solid;
  border-width: 0 10px 10px 10px;
  border-color: #e1e1e1;
  height: 550px;
  overflow-y: hidden;
}
@media only screen and (max-width:480px) {
  .dynamic-content > div {
    border-style: solid;
    border-width: 0 2px 2px 2px;
    border-color: #e1e1e1;
    overflow-y: hidden;
    height: auto;
  }
  .dynamic-content {
    padding: 0;
    top: 0;
  }
  .content-container {
    height: auto;
  }
}
@media only screen and (max-width: 768px) and (min-width: 481px)  {
  .dynamic-content > div {
    border-style: solid;
    border-width: 0 5px 5px 5px;
    border-color: #e1e1e1;
    overflow-y: hidden;
    height: auto;
  }
  .dynamic-content {
    padding: 0 2em 0 2em;
    top: 0;
  }
  .content-container {
    height: auto;
  }
}
</style>
<div class="wrapper" id="wrapper">
  <div class="header-container">
    <h1 id="first-header"></h1>
    <p id="first-sub-header"></p>
    <p id="second-sub-header"></p>
  </div>
  <div class="content-container">
  </div>
  <div class="dynamic-content" id="demo">
  </div>
</div>

</body>
</html>

【问题讨论】:

  • 查看/errors/MultiDomainHosting.php文件和控制台日志,可能有.js错误或连接问题
  • 您应该启用 WP_DEBUG 和 WP_DEBUG_LOG。在 wp-config.php 中找到:define('WP_DEBUG', false);并将其替换为:define('WP_DEBUG', true);定义('WP_DEBUG_LOG',真);运行 wp-admin 并检查 wp-content 文件夹中的内联错误和 error.log。
  • @VitaliProtosovitski 我在服务器上找不到任何 /errors/MultiDomainHosting.php 文件。
  • @PrashantSuthar 我按照你的要求做了,但在 wp-admin 或错误日志文件中都没有显示任何错误。
  • 您在此文件上使用 ajax 调用 - xhttp.open("GET", "/errors/MultiDomainHosting.php", true)。此页面所需的内容是什么?你有一个空的html,没有ajax文件,你想看什么?

标签: php css wordpress http-status-code-403


【解决方案1】:

通常情况下,随机白屏死机 (WSOD) 在没有干预的情况下消失的原因是没有为主机帐户或 WordPress 分配足够的内存。

  1. [WordPress 内存设置][1]https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP
  2. 要为 PHP 分配更多内存(WordPress 不能超过,即使您告诉它使用更多内存),找到进行更改的位置有点棘手。
    cPanel 和 Plesk 让您可以通过面板进行操作……希望您在此处进行更改。否则,您需要找到正在使用的 php.ini 文件,并更新 memory_limit = ... 行。

请记住,Plesk(我想也是 cPanel)会根据其他地方的设置自动生成大量文件。注意 php.ini 文件上的标头“此文件是自动生成的,将被覆盖 - 不要在此处进行更改”。通过更改此文件,如果您解决了 WSOD 的问题,它将在下次服务器重新启动后恢复。

在系统中找不到可以更改 PHP 内存限制的位置?
在许多共享托管环境中,标准用户在分配内存方面受托管公司的支配。虽然根据我的经验,有些人为我增加了尺寸,因为他们可能不会收到很多这样的请求。在花费太多时间试图找到进行修改的地方失败之前,请与他们联系。

【讨论】:

  • 感谢您的回复。请告诉我它是否存在内存问题,那么为什么当我通过 android 手机访问它时它不会影响网站。我在笔记本电脑和安卓手机上一起加载网站,虽然它在手机上运行良好,但在笔记本电脑上会显示错误。
  • 不客气。为了回答问题的随机性和选择性,一些可能的原因是:在您的移动 Android 设备上进行更积极的缓存,您的移动提供商在网络级别进行缓存,针对 Android 和桌面激活不同的插件。或者,我的记忆理论完全是错误的,上面的 cmets(为您指出更多技术故障排除)是您最好的线索。但在大部分情况下,我通过确保满足内存要求来解决非常随机的 WSOD 问题。
  • 谢谢,由于我在 cPanel 中找不到任何选项,我会要求我的托管服务提供商增加网站的内存。另一方面,我刚刚在 cPanel 上发现我仍在为我的网站使用 php 5.6,即使可以使用高达 7.1 的更高版本。您认为这可能是导致问题的原因吗?将php升级到最新版本有帮助吗?
  • PHP 7 看起来更加优化,而且我发现的一些资料表明它将使用大约 20% 的内存。在我自己的网站上,我无法找到有关哪些插件与 PHP 7+ 兼容的信息。例如 Drupal 核心将在 7.1 上运行,但尚未在 7.2 上运行。我发现一些脚本我无法实现所谓的整体兼容性测试......没有太冗长和理论,我建议在开发服务器上尝试 PHP 7,并测试它......如果它看起来不错,请进行切换,但要像鹰一样观察错误日志,等待下一顿饭。
猜你喜欢
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
  • 2016-03-26
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多