我在windows配置成
[code]
<VirtualHost *>
ServerAlias *
UseCanonicalName off
ServerAdmin admin@test.cn
DocumentRoot D:\hosts\vhosts\test.cn
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.[a-z0-9_]+\.cn
RewriteCond %{HTTP_HOST} !^(www)\.[a-z0-9]+\.cn
RewriteRule ^(.*)$ /%1/$1 [L]
ErrorLog logs/test.cn-error_log
php_admin_value open_basedir "D:\hosts\vhosts\test.cn;C:\WINDOWS\Temp;"
</VirtualHost>
[/code]
可以很好地支持二级域名的泛解析,但拷贝到linux 下就没有效果,
试图改成
[code]
<VirtualHost *>
ServerAlias *
UseCanonicalName OFF
ServerAdmin admin@test.cn
VirtualDocumentRoot /var/www/vhosts/%-2_%-1/
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www)\.[a-z0-9_]+\.cn
RewriteCond %{HTTP_HOST} ^(.+)\.[a-z0-9_]+\.cn
rewriterule ([^.]+).[a-z0-9_]+.cn(.*) /$1$2 [L]
ErrorLog /var/log/apache2/local_errors.log
CustomLog /var/log/apache2/local_accesses.log common
</VirtualHost>
[code]
-------------------------
解决
终于成功了,在linux 上
原配置修改为
[code]
<VirtualHost *>
ServerAlias *
UseCanonicalName OFF
ServerAdmin admin@test.cn
VirtualDocumentRoot /var/www/vhosts/%-2_%-1/
DirectoryIndex index.php index.html index.htm
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www)\.[a-z0-9]+\.cn
RewriteCond %{HTTP_HOST} ^(.+)\.[a-z0-9]++\.cn
Rewriterule ^(.+) %{HTTP_HOST}$1 [NS,C]
#关键地方 NS 标志符 不作用于内部生成的url上
rewriterule ([^.]+)\.([a-z0-9]+)\.cn(.*) /var/www/vhosts/$2_cn/$1$3 [L]
ErrorLog "/var/log/apache2/local_errors.log"
CustomLog "/var/log/apache2/local_accesses.log" common
</VirtualHost>
[/code]
http://www.test.cn 与test.cn 访问 /var/www/vhosts/test_cn/
其余二级域名 如域名blog.test.cn访问目录 /var/www/vhosts/test_cn/blog/
部分解决 apache二级域名的泛解析支持的问题
- alertger
- 帖子: 34
- 注册时间: 2008-08-12 18:24
- 来自: 山东
部分解决 apache二级域名的泛解析支持的问题
上次由 alertger 在 2009-04-23 16:07,总共编辑 8 次。
- szyzln
- 帖子: 910
- 注册时间: 2008-10-31 15:28
- 来自: 中国上海
- 联系:
- alertger
- 帖子: 34
- 注册时间: 2008-08-12 18:24
- 来自: 山东
- alertger
- 帖子: 34
- 注册时间: 2008-08-12 18:24
- 来自: 山东
Re: 解决 apache二级域名的泛解析支持的问题
目前的问题是
例如域名demo.test.cn访问时
访问的目录也对,但默认页显示的是上级目录设定的默认页。
例 (域名 => 目录或文件)
---------------------------
test.cn => /test.cn/ (假如)
现在是
demo.test.cn => /test.cn/index.php 错误
正确应该是
demo.test.cn => /test.cn/demo/index.php
另外
demo.test.cn/index.php => /test.cn/demo/index.php 正常
但是在目录/test.cn/demo/下设定DirectoryIndex为其它的默认页(不是上级目录指定过的),访问就正常
郁闷!
DirectoryIndex 指令与上级目录的DirectoryIndex 指令有冲突,难道上级目录的DirectoryIndex设定具有优先权么?
例如域名demo.test.cn访问时
访问的目录也对,但默认页显示的是上级目录设定的默认页。
例 (域名 => 目录或文件)
---------------------------
test.cn => /test.cn/ (假如)
现在是
demo.test.cn => /test.cn/index.php 错误
正确应该是
demo.test.cn => /test.cn/demo/index.php
另外
demo.test.cn/index.php => /test.cn/demo/index.php 正常
但是在目录/test.cn/demo/下设定DirectoryIndex为其它的默认页(不是上级目录指定过的),访问就正常
郁闷!
DirectoryIndex 指令与上级目录的DirectoryIndex 指令有冲突,难道上级目录的DirectoryIndex设定具有优先权么?