在安装ECSHOP4.0前需要配置二级域名api指向的文件路径,在 apache conf/extra/httpd-vhosts.conf 文件添加以下两段代码配置Virtual hosts。此时www里已放入ecshop和 appserver两个文件夹。第一次配置时 httpd.conf 和 httpd-vhosts.conf 两个配置文件都把 DocumentRoot 指向了D:\wamp\www\ecshop ,而 api.abc.com则指向了D:\wamp\www\appserver\public ;访问api.abc.com出现403 forbidden错误。更改DocumentRoot 路径为D:\wamp\www后成功访问。
VirtualHost的DocumentRoot不在全局的DocumentRoot目录下,这时必须在全局中单独增加对该目录的Directory 项进行设置,否则该VirtualHost下的所有访问均会出现403 forbidden错误。
<VirtualHost *:80>
ServerName www.abc.com
DocumentRoot D:\wamp\www #不能指向D:\wamp\www\ecshop
<Directory D:\wamp\www>
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.php [L]
Header set Access-Control-Allow-Origin '*'
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName api.abc.com
DocumentRoot D:\wamp\www\appserver\public
<Directory D:\wamp\www\appserver\public>
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.php [L]
Header set Access-Control-Allow-Origin '*'
</Directory>
</VirtualHost>