在我的/var/www
我有很多网站(goodsite,badsite,uglysite)。现在可以通过mydomain.com/goodsite
等访问它们。
我想要的是uglysite.mydomain.com
访问一个特别是丑陋的网站 - 其他网站保持原样。
我尝试过各种摆弄.htaccess的方式(在/var/www
中)。注意我启用了mod-rewrite并启用了mod vhost-alias。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^uglysite\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/uglysite/
RewriteRule ^(.*)$ /uglysite/$1 [L]
最终发生的事情是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>
以上内容已添加到我的网站启用/ 000默认文件中。这让uglysite.mydomain.com正常工作,但是mydomain.com映射到了同样的东西!
有没有直接的方式去做我打算做的事情?提前谢谢。
答案 0 :(得分: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>
<强> 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>
另请注意,在上面的示例中,我修改了DocumentRoot
以指向您希望从中提供文件的目录
编辑:虚拟主机设置为*:80,因为您的网站无论如何都指向您自己的IP