wid*_*ara 3 domain wildcard subdomain apache-2.2
httpd-vhosts.conf
<Directory "/Volumes/DATA/websites">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
<Virtualhost *:80>
VirtualDocumentRoot "/Volumes/DATA/websites/default"
ServerName default.dev
UseCanonicalName Off
</Virtualhost>
<Virtualhost *:80>
VirtualDocumentRoot "/Volumes/DATA/websites/%1/www"
ServerAlias *.dev
UseCanonicalName Off
</Virtualhost>
Run Code Online (Sandbox Code Playgroud)
目前处理请求如下:
alpha.dev -> /Volumes/DATA/websites/alpha/www
beta.dev -> /Volumes/DATA/websites/beta/www
Run Code Online (Sandbox Code Playgroud)
是否可以拥有通配符域和子域?例如:
alpha.dev -> /Volumes/DATA/websites/alpha/www
img.alpha.dev -> /Volumes/DATA/websites/alpha/img
cdn.alpha.dev -> /Volumes/DATA/websites/alpha/cdn
beta.dev -> /Volumes/DATA/websites/beta/www
docs.beta.dev -> /Volumes/DATA/websites/beta/docs
blog.beta.dev -> /Volumes/DATA/websites/beta/blog
Run Code Online (Sandbox Code Playgroud)
根据此文档,可以使用 FQDN 的多个部分。在您的配置中,您使用的%1
是对应的子域。如果FQDN是img.alpha.dev
那么%1
将会导致img
和%2
对应于它导致域alpha
和%0
以img.alpha.dev
作为%0
对应于FQDN。
实现以下配置:
<VirtualHost *:80>
ServerAlias *
VirtualDocumentRoot /var/www/%2/%1
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
在/etc/httpd/conf/httpd.conf
、执行mkdir -p /var/www/mydomain/info && echo helloworld > /var/www/mydomain/info/index.html
、重新启动httpd
和导航到http://info.mydomain.com/
结果中helloworld
。
但是,如果更多地指定了 ServerAlias,例如:
<VirtualHost *:80>
ServerAlias *.mydomain.com
VirtualDocumentRoot /var/www/%1
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
执行mkdir -p /var/www/info && echo test2_param_one > /var/www/info/index.html
并导航到info.mydomain.com
结果test2_param_one
。
<VirtualHost *:80>
ServerAlias *.mydomain.com
VirtualDocumentRoot /var/www/%0
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
执行mkdir -p /var/www/info.mydomain.com && echo test2_param_all > /var/www/info.mydomain.com/index.html
并导航到info.mydomain.com
结果test2_param_all
。
总之,以下代码段有效:
<VirtualHost *:80>
ServerAlias *.*.dev
VirtualDocumentRoot /var/www/%2/%1
</VirtualHost>
<VirtualHost *:80>
ServerAlias *.dev
VirtualDocumentRoot /var/www/%1/test
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
mkdir -p /var/www/alpha/test && echo test5 > /var/www/alpha/test/index.html
, mkdir -p /var/www/alpha/img && echo test10 > /var/www/alpha/img/index.html
, 导航到http://alpha.dev/
Returnstest5
和导航到http://img.alpha.dev/
Returns test10
。
归档时间: |
|
查看次数: |
10032 次 |
最近记录: |