微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows-VirtualHost中的Apache DocumentRoot被忽略 有效的最终代码:

如何解决Windows-VirtualHost中的Apache DocumentRoot被忽略 有效的最终代码:

在Windows 7 PC上,我正在使用XAMPP => Apache运行测试Web服务器。但是对于某些网站,我不希望使用常规的“ C:\ xampp \ htdocs”,而是想要使用自定义路径-在我使用Ubuntu时,我通常以DocumentRoot的身份在VirtualHost中进行设置,并且可以正常工作。
在此PC上,目标路径类似于:
"C:\Users\X\disk External\DIRWITHDIÁCRÍCÍCS\WEBS\some path\path"
但是在此PC上,当我这样做

<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:)

我想念什么?

解决方法

所以这只是我的白痴,我试图对所有内容进行域划分,但是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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。