php - 为什么星号会返回禁止页面?

标签 php apache

我正在将 XAMPP 与 Apache/2.4.0 和 PHP/5.6.3 一起使用,并且我注意到星号 (*) 作为 URL 中的第一个字符,例如 http://localhost/* 导致 apache 在运行 PHP 之前返回访问禁止页面。我没有注意到任何其他网站使用星号字符来表示任何内容,因此我知道由于某种原因它一定是无效字符,但我找不到任何内容。有谁知道如何在 xampp 中覆盖它,以便我可以在 PHP 中进行自己的自定义错误管理?

最佳答案

自定义错误页面:

编辑文件conf/extra/httpd-multilang-errordoc.conf
更新包含 ErrorDocument 403 的行,您有 3 种不同的风格:

  • 风格 1,纯文本:               ErrorDocument 403“你在这里做什么?”
  • 风格 2,本地重定向:       ErrorDocument 403 "/error/myCustom403ErrorPage.html"
  • 风格 3,外部重定向:ErrorDocument 403 "http://en.wikipedia.org/wiki/HTTP_403"
  • 注意:*.conf更新后必须重新启动Apache服务器

    星号是保留字符,Apache 使用它的原因是: “在具有多个用户的系统上,可以使用 UserDir 指令允许每个用户在其主目录中拥有一个网站
    您可以阅读 Apache 的此文档,了解星号的实际用途:) Apache - Per-user web directories

    更新: 如果你想执行一个php脚本作为错误页面(你可以使用风格3)

    ErrorDocument 403 "http://localhost/customWebAppError/error403.php"
    


    更新

  • 创建自定义错误页面ERROR_403.html
  • 将其放在xampp/apache/error
  • 通过 ErrorDocument 403/error/ERROR_403.html 更新 httpd-multilang-errordoc.conf
  • ERROR_403.html 中创建一个 iframeajax 请求,以便与您的服务器通信并提供自定义响应
  • 关于php - 为什么星号会返回禁止页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28493371/

    相关文章:

    php - 是什么杀死了这个进程以及如何阻止它这样做

    php - 如何在eclipse中生成getter和setter (php)

    php - JQuery 帖子不适用于动态 jQuery 元素

    php - magento 前端突然 503 - 如何调试

    javascript - JavaScript 中 PHP 的未终止字符串文字

    node.js - 尝试使用 SocketIO 和 PHPws 在服务器之间创建套接字

    Apache Tomcat 和 servlet

    php - mysql编程的好方法

    javascript - AJAX中使用URL跳转到页面

    java - 转换 String BigDecimal 时出错