我有2个完全不同的项目,我想用同一个域名“mysimpledomainname.com”托管,地址为xx.xx.xxx.xx(非本地)
这2个项目位于 项目1)/ var / www / html / project1 项目2)/ var / www / html / project2
我想让这两个项目像这样解决
mysimpledomainname.com
mysimpledomainname.com/project2
我不想使用子域名。这是我的公共服务器上的项目,而不是我的本地机器,所以我认为更新主机文件不会对我有帮助。
我已经从mysimpledomainname.com加载了第一个项目(它已经在运行)。
在目录sites-available中,我有一个conf文件mysimpledomainname.com.conf,其值为:
<VirtualHost *:80>
ServerAdmin myemail@gmail.com
DocumentRoot /var/www/html/project1
<Directory /var/www/html/project1/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我认为我需要设置2个不同的配置文件才能执行此操作,但在搜索后我无法找到解决方案。 谁能帮我这个?您可以准确发布我对2个不同配置文件所需的内容,而不是简短的回答吗?
谢谢,
大卫
答案 0 :(得分:5)
您只能拥有1个VirtualHost
指令,因为这是根据FQDN定义的,并且您只想使用mysimpledomainname.com
。
Project1 的配置正常。您只需要在路径/project2
下提供另一个目录。为此,您需要使用Alias
指令。
所以你的最终配置应该是这样的(当然,如果你愿意,你可以为每个子目录分别配置Directory
):
<VirtualHost *:80>
ServerAdmin myemail@gmail.com
DocumentRoot /var/www/html/project1
Alias /project2 /var/www/html/project2
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>