我最近增加了一個虛擬主機配置給我的apache,它使用mod_vhost_alias將請求路由到域名目錄。如果目錄存在,一切正常。現在我的想法是,當我調用一個路由到我的apache的域,但不存在相應的虛擬文檔根目錄時,請求將由默認主機處理。但它不是。有沒有解決方案來做到這一點,而不使用mod_rewrite?如何使用mod_vhost_alias而不使用mod_rewrite獲取默認主機工作?
這是我的動態主機配置:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerAlias *
UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog /var/log/apache2/dhost_access.log vcommon
VirtualDocumentRoot /var/www/%0
VirtualScriptAlias /var/www/%0
</VirtualHost>
這是我的默認主機:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>