Localhost子域和通配符问题

时间:2017-01-12 06:20:14

标签: apache virtualhost vhosts

我已经在xampp上安装了一个在xampp上安装的通配符vhost,因为我想在localhost中测试一些应用程序,而不必为每个应用程序添加太多行到vhosts.conf。我认为这是最简单最简单的方法是将以下内容添加到我的vhost.conf中:

<VirtualHost *:80>
       ServerAlias *.localhost
       VirtualDocumentRoot "C:/xampp/htdocs/%1/"
</VirtualHost>
<VirtualHost *:443>
    ServerAlias *.localhost
    VirtualDocumentRoot "C:/xampp/htdocs/%1/"
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/xampp/htdocs/%1/">
        AllowOverride All
        Options Indexes FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

这让我可以在htdocs的foldername中访问superawesomeapp1作为localhost的子域。因此,foo中的任何内容都位于foo.localhost并且位于bar.localhost,依此类推。 这很有效,直到我有一个应用程序,希望将以下内容添加到vhost.conf:

<VirtualHost *:80>
    ServerName johnny.localhost
    ServerAlias johnny.localhost
    DocumentRoot "C:/xampp/htdocs/heyjohnny/web"
    <Directory "C:/xampp/htdocs/heyjohnny/web">
        AllowOverride None
        Order Allow,Deny
        Allow from All

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        </IfModule>
    </Directory>
    <Directory "C:/xampp/htdocs/heyjohnny/web/bundles">
        <IfModule mod_rewrite.c>
            RewriteEngine Off
        </IfModule>
    </Directory>
</VirtualHost>`enter code here`

vhost服务器别名会覆盖后者,但是我无法弄清楚如何覆盖以前的注释并手动混搭我要添加的每个vhost的密钥,这会在一段时间后增加。我注意到它也覆盖了将http重定向到https的任何尝试。我可能会在localhost上运行其中一些东西,但我打算最终在局域网中使用其中一些东西。我尝试重新排序条目,将通配符别名放在最后,但这并没有改变任何东西。我很可能做错了,但我愿意接受建议。

0 个答案:

没有答案