Yuk*_*élé 3 apache wildcard-subdomain virtualhost
我想做这样的事情:
<VirtualHost *:80>
ServerName $variable.example.com
DocumentRoot /var/www/$variable
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
例如,如果我去foo.example.com它必须显示/var/www/foo目录内容
那个好的apache语法是什么?
您不能$variable在servername中使用它并将其映射到文档根目录,但您可以使用mod_rewrite和通配符.
<VirtualHost *:80>
ServerName subdomain.example.com
ServerAlias *.example.com
DocumentRoot /var/www/
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.
RewriteCond %{REQUEST_URI}::%1 !^/([^/]+).*::\1
RewriteRule ^(.*)$ /%1/$1 [L]
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
本subdomain.example.com可以只是任意子域名,是不是www.example.com.对于任何不以"www"开头的请求,子域将被捕获为一个组(第二个条件),然后下一行确保请求尚未被路由到子域名,并且规则将其路由.
所以对于请求:
http://foo.example.com/bar/x.html
Run Code Online (Sandbox Code Playgroud)
它被路由到:
/foo/bar/x.html
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4983 次 |
| 最近记录: |