我试图设置零configurationnetworking开发环境:通配符DNS和dynamic虚拟主机。 这是我的v主机configuration:
NameVirtualHost *:80 <VirtualHost *:80> ServerAlias *.dev VirtualDocumentRoot /var/sites/%-2/docs UseCanonicalName Off </VirtualHost>
在这一点上一切都好,但现在我试图build立与后备的dynamic子域:
test.dev → /var/sites/test/docs sub.test.dev → /var/sites/test/sub dontexist.test.dev → /var/sites/test/docs
目录结构:
var |--sites |--test |--docs |--sub
我目前的尝试:
<Directory "/var/sites"> RewriteEngine On RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.([a-z0-9][-a-z0-9]+)\.dev\.?(:80)?$ [NC] RewriteCond %{DOCUMENT_ROOT}/%2/%1 -d RewriteRule ^(.*) /%2/%1/$1 [E=SUBDOMAIN:%1,L] </Directory>
现在堆放在:
[perdir /var/sites/] strip per-dir prefix: /var/sites/test/docs/ -> test/docs/ [perdir /var/sites/] applying pattern '^(.*)' to uri 'test/docs/' [perdir /var/sites/] RewriteCond: input='' pattern='=' => matched [perdir /var/sites/] RewriteCond: input='sub.test.dev' pattern='^([a-z0-9][-a-z0-9]+)\.([a-z0-9][-a-z0-9]+)\.dev\.?(:80)?$' [NC] => matched [perdir /var/sites/] RewriteCond: input='/var/sites/test/sub' pattern='-d' => matched [perdir /var/sites/] rewrite 'test/docs/' -> '/test/sub/test/docs/' setting env variable 'SUBDOMAIN' to 'sub' [perdir /var/sites/] internal redirect with /test/sub/test/docs/ [INTERNAL REDIRECT] [perdir /var/sites/] add path info postfix: /var/sites/test/docs/test -> /var/sites/test/docs/test/sub/test/docs/ [perdir /var/sites/] strip per-dir prefix: /var/sites/test/docs/test/sub/test/docs/ -> test/docs/test/sub/test/docs/ [perdir /var/sites/] applying pattern '^(.*)' to uri 'test/docs/test/sub/test/docs/' [perdir /var/sites/] RewriteCond: input='sub' pattern='=' => not-matched [perdir /var/sites/] pass through /var/sites/test/docs/test
有任何想法吗?
这甚至可能吗?
谢谢