XAMPP 所有配置均无效的虚拟主机站点

XAMPP virtualhost site with all configs not working

我正在尝试 运行 在 XAMPP 的 apache 服务器上本地访问 my.com。这里我在 httpd-vhosts.conf 文件中的配置在路径 ...\XAMPP\apache\conf\extra:

<VirtualHost *:80>
    DocumentRoot "D:/IDEs/XAMPP/htdocs"
    ServerName localhost
    <Directory "D:/IDEs/XAMPP/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "D:/IDEs/Websites/my.com"
    ServerName my.com
    <Directory "D:/IDEs/Websites/my.com">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

此外,我记得在 hosts 文件中添加两行,位于 C:\Windows\System32\drivers\etc:

127.0.0.1   localhost
127.0.0.1   my.com

但是,当我通过 link 'my.com' 进入并启用了 apache 服务器时,我只有包含文件夹目录的页面,它们位于 htdocs XAMPP' s文件夹。

我检查了很多视频和 Whosebug 问题,但没有任何帮助。 如果您能帮我解决这个问题,我将很高兴。

首先你应该在 httpd.conf

上安排目录

示例:

    <Directory "C:/SERVER~1/web/site1">
    Options Indexes FollowSymLinks MultiViews ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
<Directory "C:/SERVER~1/web/site2">
    Options Indexes FollowSymLinks MultiViews ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

然后vhosts.conf这样排列

示例:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName www.site1.com
    DocumentRoot "C:/SERVER~1/web/site1"
</VirtualHost>

<VirtualHost *:80>
    ServerName site1.com
    DocumentRoot "C:/SERVER~1/web/site1"
</VirtualHost>

<VirtualHost *:80>
    ServerName www.site2.com
    DocumentRoot "C:/SERVER~1/web/site2"
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.com
    DocumentRoot "C:/SERVER~1/web/site2"
</VirtualHost>

经过五天一夜的阅读、搜索、尝试,我终于找到了解决方案,并分几步完成了:

首先,忘掉所有文件,专注于D:\IDEs\XAMPP\apache\conf\extra.

中的httpd-ssl.conf

第二: 找到已被注释的 "SSL Virtual Host Context" 行。在下方,找到行 <VirtualHost _default_:443>.or simmilar。然后将其更改为 <VirtualHost *:443>.

第三,将文档根目录更改为xampp的htdocs的路径,例如"D:/XAMPP/htdocs"。此外,将 ServerName 从 www.example.com:443 或类似名称更改为 localhost。 我们完成了。

最后,在行 </VirtualHost> 之后插入代码

<VirtualHost *:443>
        DocumentRoot "D:/IDEs/Websites/my.com"
        ServerName my.com
    <Directory "D:/IDEs/Websites/my.com">
            Require all granted
    </Directory>
</VirtualHost>

Document RootDirectory 路径更改为您的网站位置。和 Servername 到您的服务器名称。

重启 APACHE

对我有用。

我也了解到有些网站在本地主机上使用 SSL 而其他网站则没有。 所以如果你有像 Apache/2.4.37 (Win32) OpenSSL/1.0.2p PHP/7.0.33 Server at my.com Port 443 这样的异常,你应该将你的虚拟主机配置添加到 httpd-ssl.conf 文件中。 如果你喜欢 ... Port 80 将你的虚拟主机配置添加到 httpd-vhosts.conf