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+ 有一个新指令
=> <VirtualHost test2020.test:443>
<VirtualHost *:443>
工作最终代码:
# (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