xampp Windows 8.1 (20023)给定的路径在根路径之上

Posted

技术标签:

【中文标题】xampp Windows 8.1 (20023)给定的路径在根路径之上【英文标题】:xampp Windows 8.1 (20023)The given path was above the root path 【发布时间】:2015-01-29 15:02:17 【问题描述】:

Windows 版本:Windows 8 Pro 64 位 XAMPP 版本:5.5.19

我刚刚将 XAMPP 上的本地系统从 Windows XP 机器迁移到 Windows 8.1。 在原始系统上,如果我浏览到 http://localhost/w/index.php/Home,'/Home' 会被传递给 index.php 文件,该文件将其等同于 '?title=Home',但在新系统上,浏览器会显示:

Access forbidden!

You don't have permission to access the requested object. It is either read-protected or not readable by the server.

If you think this is a server error, please contact the webmaster.

Error 403
localhost
Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.5.19 

在 Apache (error.log) 中我看到了:

[core:error] [pid ...:tid ...] (20023)The given path was above the root path: [client ::1:...] AH00127: Cannot map GET /w/index.php/Home HTTP/1.1 to file

'/Home' 不是文件,它应该传递给 index.php

感谢您的帮助;我对 .conf 文件不够熟悉,无法理解可能导致错误的原因。

编辑(回复 Rhythem Aggarwal):

直接访问 localhost/ 也会得到Access forbidden!。和 [core:error] [pid 3408:tid 1732] (20023)The given path was above the root path: [client ::1:52491] AH00127: Cannot map GET / HTTP/1.1 to file

虽然去http://localhost/w/index.php?title=Home 工作正常。

我尝试添加到 httpd-xampp.conf:

<Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks MultiViews AllowOverride all Order Deny,Allow Allow from all Require all granted </Directory>

根据Xampp Access Forbidden php 的其他答案,但没有任何变化。

编辑更多内容以显示 XAMPP 显示:

Initializing Control Panel
18:00:36  [main]    Windows Version: Windows 8 Pro  64-bit
18:00:36  [main]    XAMPP Version: 5.5.19
18:00:36  [main]    Control Panel Version: 3.2.1  [ Compiled: May 7th 2013 ]
18:00:36  [main]    Running with Administrator rights - good!
18:00:36  [main]    XAMPP Installation Directory: "c:\xampp\"
18:00:36  [main]    Checking for prerequisites
18:00:36  [main]    All prerequisites found
18:00:36  [main]    Initializing Modules
18:00:36  [main]    Enabling autostart for module "Apache"
18:00:36  [main]    Enabling autostart for module "mysql"
18:00:36  [main]    Starting Check-Timer
18:00:36  [main]    Control Panel Ready
18:00:36  [Apache]  Autostart active: starting...
18:00:36  [Apache]  Attempting to start Apache app...
18:00:36  [mysql]   Autostart active: starting...
18:00:36  [mysql]   Attempting to start MySQL app...
18:00:37  [Apache]  Status change detected: running
18:00:37  [mysql]   Status change detected: running
18:09:27  [Apache]  Attempting to stop Apache (PID: 2928)
18:09:27  [Apache]  Attempting to stop Apache (PID: 2432)
18:09:28  [Apache]  Status change detected: stopped
18:09:31  [Apache]  Attempting to start Apache app...
18:09:31  [Apache]  Status change detected: running

另一个编辑:

当我在 Windows 8.1 文件管理器中查看 c:\xampp\htdocs 的属性时,它会显示只读框已选中,即使我取消选中它然后允许它更新所有文件和子文件夹,当我回顾它再次显示为只读的属性。

【问题讨论】:

【参考方案1】:

答案似乎是我在 htdocs 文件夹中有一个旧的实验性 .htaccess 文件。在 Windows XP 下,该文件显然被忽略了,但现在在 Windows 8.1 上,它正在被使用和干扰。

【讨论】:

【参考方案2】:

形成我的理解, index.php 是一个通常位于 htdocs 文件夹中的文件。此文件(当未更改时,即在 xampp 的全新安装中)会将您重定向到 xampp 主屏幕。 1. 您是否尝试输入我提到的链接? 2. 如果是,那么这通常是 Xampp 更改安全策略的情况,假设在升级到 Windows 8.1 时,您也将 xampp 升级到了新版本。

如果您处于我提到的第二步,请点击此链接。

Xampp Access Forbidden php

如果这些都不适合你,请更新我。

【讨论】:

尝试直接在浏览器中浏览到 localhost/(对于第 1 步,我忘记了链接) 能否请您在此处添加屏幕、apache 和网络浏览器的屏幕截图??? 一个简单的问题,您在更改 conf 文件后是否尝试重新启动您的 xampp 服务器?如果不重新启动,新代码将不会生效 谢谢。是的,每次更改后我都重新启动了 Apache。但是我可以在屏幕截图中显示什么,而不是我在文本中写的内容? (我在这里粘贴文本更容易) 好的,请给我几秒钟的时间来使用我的配置来解决这个问题。【参考方案3】:

eth 已经说过了: 答案似乎是我在 htdocs 文件夹中有一个旧的实验性 .htaccess 文件。在 Windows XP 下,该文件显然被忽略了,但现在在 Windows 8.1 上,它正在被使用和干扰。

尝试使用下面的代码,将其添加到您的 httpd-xampp.conf 文件中:

<Directory "C:/xampp/htdocs/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order Deny,Allow
        Allow from all
        Require all granted
</Directory>

希望这对您有所帮助。 (感谢Tho Vo。)

【讨论】:

以上是关于xampp Windows 8.1 (20023)给定的路径在根路径之上的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 无法在 Windows 8.1 的 Xampp 控制面板中启动

在 XAMPP (WINDOWS 8.1) 中作为脚本在 PHP 中运行 Python

XAMPP 未在 Window 8.1 中运行 [关闭]

程序文件目录中的 XAMPP

XAMPP Apache 无法启动

Xampp 1.8.1:Apache 无法在端口 8080 中启动,该端口正被 tomcat 7 使用