Lot*_*her 5 virtualhost apache-2.2
我有一个标准的 Ubuntu 安装。Apache Web 根目录是 /var/www。
我想托管我的“主要”站点和其他一些站点。
通常我会将 mysite.com 的文件放在 Web 根目录中。但是,如果我想托管多个看起来可能会变得混乱的站点。看起来我最终会得到一个类似的结构:
我的“主”站点的文件:
/var/www/index.html
/var/www/images/
/var/www/js/
Run Code Online (Sandbox Code Playgroud)
等等...
然后我的虚拟网站如:
/var/www/somesite/ #somesite's files in here
/var/www/foobar/ #foobar's files in here
Run Code Online (Sandbox Code Playgroud)
我应该如何组织这样的设置?将主站点的文件与虚拟主机站点的目录混合似乎是错误和混乱的。我想将我的“主”站点放在 webroot 中它自己的目录中(例如上面的“somesite”和“foobar”),但是访问我的 IP 地址的人将获得 web 根目录,其中没有任何站点文件。我应该这样做,然后将任何内容重定向到主 IP 到“主”站点的目录?也许用htaccess?也许在某个地方的 apache 配置中?
你会如何处理这个问题?
我最终做了什么(感谢下面的建议,所有这些都是有帮助的)...
这是配置文件 ( /etc/apache2/sites-enabled/default
) 最初的内容:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
通过将其更改为:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mysite/public
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/mysite/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)
我能够访问“mysite.com”(我从目录中提供了公共文件,public
因此我可以将一些系统文件向上一级而不是网络访问)
然后我通过创建一个新的配置文件在 next.mysite.com 上设置另一个站点,/etc/apache2/sites-enabled/nextconfig
如下所示:
<VirtualHost *:80>
DocumentRoot /var/www/next
<Directory "/var/www/next">
allow from all
Options +Indexes
</Directory>
ServerName next.mysite.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
193 次 |
最近记录: |