Windows - VirtualHost 中的 Apache DocumentRoot 被忽略

Posted

技术标签:

【中文标题】Windows - VirtualHost 中的 Apache DocumentRoot 被忽略【英文标题】:Windows - Apache DocumentRoot in VirtualHost ignored 【发布时间】:2021-01-28 12:51:30 【问题描述】:

在我的 Windows 7 PC 上,我使用 XAMPP => Apache 来运行测试网络服务器。但是对于某个网站,我不想要常规的“C:\xampp\htdocs”,而是一个自定义路径——当我在 Ubuntu 上工作时,我通常在 VirtualHost 中设置为 DocumentRoot 并且它可以工作。 在这台 PC 上,目标路径类似于:"C:\Users\X\Disk External\DIRWITHDIÁCRÍCÍCS\WEBS\some path\path" 但是当我这样做时在这台电脑上

<VirtualHost test2020.test:443>
    DocumentRoot "C:\Users\X\Disk External\DIRWITHDIÁCRÍCÍCS\WEBS\some path\path"
    ServerName test2020.test
    ServerAlias www.test2020.test
</VirtualHost>

DocumentRoot 指令被完全忽略 - 它似乎仍以默认C:\xampp\htdocs 中的文件为目标

我还尝试在系统中移动文件并更改正斜杠/反斜杠但没有成功:

DocumentRoot "C:/Users/X/Disk External/DIRWITHDIÁCRÍCÍCS/WEBS/some path/path"
DocumentRoot C:\xampp\htdocs\testdocumentroot
DocumentRoot "C:\Users\X\www"

我也尝试过交换 DocumentRoot 和 ServerName 的顺序,但没有成功。 我检查了 C:\xampp\apache\conf\httpd.conf - Include conf/extra/httpd-vhosts.conf 行未注释。 而文件C:\xampp\apache\conf\extra\httpd-vhosts.conf 似乎在设置错误时会影响apache 的启动。 编辑:我也确实在每次尝试之间重新启动了 apache :)

我错过了什么?

【问题讨论】:

是否应该将此问题移至不同的 stackexchange 站点? (所以充满了 apache/virtualhost 问题) 【参考方案1】:

所以这只是我的白痴,我试图覆盖所有内容,但是 VirtualHost 标记内的指令 attribute 用于网络传入限制。对于常规情况,* 在那里就可以了,然后我的目录标签指令也有问题,因为显然Apache 2.4+ 有一个新指令

&lt;VirtualHost test2020.test:443&gt; => &lt;VirtualHost *:443&gt;

工作最终代码:

# (or *:80 for http:// , 443 is for https://)
<VirtualHost *:443>
    DocumentRoot "C:\Users\X\Disk External\DIRWITHDIÁCRÍCÍCS\WEBS\some path\path"
    ServerName test2020.test
    ServerAlias www.test2020.test
   
    <Directory "C:\Users\X\Disk External\DIRWITHDIÁCRÍCÍCS\WEBS\some path\path">
        # NEW&SIMPLE FROM APACHE 2.4+ !
        Require all granted
    </Directory>

</VirtualHost>

【讨论】:

以上是关于Windows - VirtualHost 中的 Apache DocumentRoot 被忽略的主要内容,如果未能解决你的问题,请参考以下文章

添加 VirtualHost 失败:访问禁止错误 403 (XAMPP) (Windows 7)

添加 VirtualHost 失败:访问禁止错误 403 (XAMPP) (Windows 7)

添加 VirtualHost 失败:访问禁止错误 403 (XAMPP) (Windows 7)

apache virtualhost(windows)不改变DocumentRoot

VirtualHost 阻止 XAMPP 声明启动 Apache

VirtualHost 文件都指向 Ubuntu 12.04 中的第一个 VirtualHost [关闭]