Apache 别名抛出“您无权访问”错误

MGo*_*e93 2 apache

在发帖之前,我查看了:

您无权访问此服务器上的 /

DirectoryIndex 在 Apache 中的别名应用

据我了解,Alias 指令允许文档存储在本地文件系统中,而不是存储在 DocumentRoot 下。

这就是我在这里所做的。我在 C:\Users\dogzilla\PhpstormProjects\Webpage 中有一个 hello.php 文件

那不是我的文档根目录... C:\Apache\latest\www 是。

当我运行该项目时,从IDE发送到浏览器的URL是

本地主机:8080/网页/hello.php

这会导致 404 错误。

但我不想过多地处理 IDE 设置,因此我将其添加到我的 httpd.conf 中。我只抓取了“网页”,因为这就是显示 404 错误时 URL 中的全部内容。

别名 /Webpage C:/Users/dogzilla/PhpstormProjects/Webpage

当我重新运行我的项目时,404 消失了,但出现了 403 错误。

因此,在阅读上面的两个链接时,我也将其添加到 httpd.conf 中:

<Directory "C:/Users/dogzilla/PhpstormProjects/Webpage">
  Order allow,deny
  Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

(是的,一旦运行我就会加强安全性)

但我仍然收到 403 错误。

我究竟做错了什么?我尝试过RTFM。显然我仍然做错了什么。

Ike*_*bal 5

如果您要为DocumentRoot之外的目录创建别名,则可能需要明确允许访问目标目录。

Alias "/image" "/ftp/pub/image"
<Directory "/ftp/pub/image">
    Require all granted
    Options Indexes
</Directory>
Run Code Online (Sandbox Code Playgroud)

如果Options Indexes未设置,并且未找到默认文件,服务器将返回 a403 status code并且不会显示您的目录。

服务器将尝试打开的默认文件位于httdd.conf

<IfModule dir_module>
        DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                       default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                       home.php home.pl home.cgi home.asp home.shtml home.html home.htm
    </IfModule>
Run Code Online (Sandbox Code Playgroud)