apache将单个子域映射到文件夹

Bil*_* VB 13 apache subdomain .htaccess mod-rewrite virtualhost

在我的/var/www我有很多网站(goodsite,badsite,uglysite).现在他们被访问mydomain.com/goodsite等.

我想要的是一个站点,特别是丑陋的站点,可以访问uglysite.mydomain.com- 其他站点保持不变.

我尝试了各种摆弄.htaccess(in /var/www)的方法.注意我启用了mod-rewrite并启用了mod vhost-alias.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^uglysite\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/uglysite/
RewriteRule ^(.*)$ /uglysite/$1 [L]
Run Code Online (Sandbox Code Playgroud)

最终发生的是mydomain.com和uglysite.mydomain.com总是映射到相同的东西(即索引/var/www).我尝试添加一个新的虚拟主机,并且惊讶地发现uglysite.mydomain.com正确映射,但是mydomain.com也直接映射到uglysite.

<Virtualhost uglysite.mydomain.com:80>
       ServerName uglysite.mydomain.com
       ServerAdmin www@localhost
       DocumentRoot "/var/www/"
       AccessFileName .htaccess
       <Directory "/var/www/uglysite">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

以上内容已添加到我的启用站点的/ 000-default文件中.这让uglysite.mydomain.com正常工作,但是mydomain.com映射到了同样的东西!

有没有直接的方式去做我打算做的事情?提前致谢.

arc*_*rty 18

你应该将uglysite变成第二个文件,而不是修改000-default

因此,请获取000-default文件的副本,更改子域,并将目录修改为/ path/to/site

000默认:

<Virtualhost *:80>
       ServerName mydomain.com
       ServerAdmin www@localhost
       ServerAlias mydomain.com
       DocumentRoot "/var/www/goodsite"
       AccessFileName .htaccess
       <Directory "/var/www/goodiste">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

uglysite:

<Virtualhost *:80>
       ServerName uglysite.mydomain.com
       ServerAlias uglysite.mydomain.com
       ServerAdmin www@localhost
       DocumentRoot "/var/www/uglysite"
       AccessFileName .htaccess
       <Directory "/var/www/uglysite">
               Order allow,deny
               Allow from All
               AllowOverride All
       </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

另请注意,在上面的示例中,我已将其修改DocumentRoot为指向您希望从中提供文件的目录

编辑:虚拟主机设置为*:80,因为您的站点无论如何都指向您自己的IP