我正在使用基于名称的虚拟主机配置,以服务于不同的网站 来自相同的IP地址。例如:
http://www.myserver.com/website1
http://www.myserver.com/website2
http://www.myserver.com/website3
...
http://www.myserver.com/websiten
所有这些都存储在我的服务器中,目录为:
/var/www/website1
/var/www/website2
/var/www/website3
...
/var/www/websiten
我想在浏览网址时使用website1作为默认网站:
http://www.myserver.com
为此,我尝试了这种方法:
<VirtualHost *:80>
DocumentRoot /var/www
ServerName www.myserver.com
Alias / /var/www/website1 ### ALIAS HERE
<Directory /var/www/website1>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/website2>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
...
<Directory /var/www/websiten>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
但它不起作用。请帮忙。
答案 0 :(得分:0)
为什么不像这样创建主机文件:
<VirtualHost *:80>
ServerName www.myserver.com
DocumentRoot "/var/www/website1"
</VirtualHost>
然后在var / www / website1 / dir中创建符号链接以指向其他目录?
cd /var/www/website1/
ln -s /var/www/website2/ website2
ln -s /var/www/website3/ website3
如果您有不同的域名,那么您可以像没有符号链接一样配置vhost,第一个实例使用ServerAlias指令:
<VirtualHost *:80>
ServerName myserver.com
ServerAlias www.myserver.com
DocumentRoot "/var/www/website1"
</VirtualHost>
<VirtualHost *:80>
ServerName trac.myserver.com
DocumentRoot "/var/www/website2"
</VirtualHost>
答案 1 :(得分:0)
我终于解决了我的问题。我已经取代了
Alias / /var/www/website1 ### ALIAS HERE
由此目录部分:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
RedirectMatch ^/$ /website1/
</Directory>
RedirectMatch修复了我的问题。现在,当我浏览此网址时:
http://www.myserver.com
它会自动转换为:
http://www.myserver.com/website1/
我不确定这是否是解决我问题的最佳方法,但至少,它可以按预期工作。这可以标记为[已解决]。
提前感谢您的帮助! :)