尝试访问 Windows 服务器上的虚拟主机配置时遇到 403 禁止访问错误

Encountering a 403 Forbidden Error When Attempting to Access Virtual Host Configuration on a Windows Server

提问人:Marigito Linyule 提问时间:10/13/2023 更新时间:10/28/2023 访问量:27

问:

尝试访问 Windows 服务器上的虚拟主机配置时遇到 403 禁止访问错误

我正在为 Angular 应用程序配置虚拟主机,但一直遇到 403 错误。提供的配置旨在将传入的请求定向到服务器,但它没有按预期运行。

错误

AH01630:客户端被服务器配置拒绝:C:/xampp/httpdocs

配置

` <虚拟主机 *:80> 文档根目录“C:/xampp/httpdocs” 服务器名称 192.168.0.32

Alias "/rtsis-fe" "C:/xampp/httpdocs/rtis-fe/dist/rtsis-fe"

<Directory "C:/xampp/httpdocs/rtis-fe/dist/rtsis-fe">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

ErrorLog "logs/rtsis-error.log"
CustomLog "logs/rtsis-access.log" common

RewriteEngine On

# Rewrite all requests to index.html to enable Angular routing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /rtsis-fe/index.html [L]

`

Apache XAMPP

评论


答:

0赞 aldemarcalazans 10/28/2023 #1

在 Xampp 中,默认文档根目录(在 httpd.conf 中配置)是“htdocs”,而不是“httpdocs”。此外,Xampp 使用的标准 IP 是 127.0.0.1,而不是 192.168.0.32。此外,您的虚拟主机配置过于复杂。编辑原始 C:\xampp\apache\conf\extra\httpd-vhosts.conf,添加以下代码:

<VirtualHost *:80>
    DocumentRoot "C:\xampp\htdocs\rtis-fe\dist\rtsis-fe"
    ServerName rtsis
    ErrorLog "logs/rtsis-error.log"
    CustomLog "logs/rtsis-access.log" common
    # Rewrite all requests to index.html to enable Angular routing
    <If "%{REQUEST_URI} != '/index.html' ">
        RedirectMatch "/.*" "http://rtsis/index.html"
    </If>
</VirtualHost>

由于您对服务器 (rtsis) 使用 localhost 以外的其他名称,因此此名称必须包含在文件 C:\Windows\System32\drivers\etc\hosts 中。将以下行添加到其中:

127.0.0.1   rtsis

现在,访问您的网页输入 http://rtsis。

注意:我假设您已经实现了文档根文件夹结构,并且其中包含一个索引 .html 文件。完成此基本测试后,将任何文件或文件夹放在索引 .html 文件旁边,并尝试请求它们(仅当您在 httpd-vhosts.conf 文件中注释重定向代码并在之后重新启动 Apache 时才有可能)。

顺便说一句:您收到了 403(禁止访问),可能是因为 Xampp 中的 httpd.conf 文件配置为在 htdocs 文件夹中启用请求,而不是在“httpdocs”文件夹中!

引用:

https://httpd.apache.org/docs/2.4/rewrite/avoid.html