我想设置两个虚拟主机(example.com.conf和test.com.conf):
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
和
<VirtualHost *:80>
ServerAdmin admin@test.com
ServerName test.com
ServerAlias www.test.com
DocumentRoot /var/www/test.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
问题是,如果我在浏览器中使用localhost,则会显示网站www.example.com。如果我键入localhost / test.com,则找不到错误。我的目标应该是使用localhost / example.com和localhost / test.com来处理这两个网站。
答案 0 :(得分:0)
听起来你可以使用ServerPath directive来表示apache,在这种情况下,这样的事情应该可行:
<VirtualHost 127.0.0.1>
# primary vhost
DocumentRoot "/var/www/example.com"
RewriteEngine On
RewriteRule "." "/var/www/example.com/public_html"
# ...
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "/var/www/example.com/public_html"
ServerName localhost
ServerPath "/example/"
RewriteEngine On
RewriteRule "^(/sub1/.*)" "/var/www/example$1"
# ...
</VirtualHost>
<VirtualHost 127.0.0.1>
DocumentRoot "/var/www/test.com/public_html"
ServerName localhost
ServerPath "/test/"
RewriteEngine On
RewriteRule "^(/sub2/.*)" "/var/www/test$1"
# ...
</VirtualHost>
第一个Vhost将使localhost默认为example.com页面。
答案 1 :(得分:0)
如果您想浏览任何虚拟主机下的这些文件夹,例如http://localhost/test.com,那么您只需要在任何活动虚拟主机末尾附加位置标记内的alias
directive
formB
如果您不想在其他任何地方使用
,您可以将其放入虚拟主机中FormB