部分解决 apache二级域名的泛解析支持的问题

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
头像
alertger
帖子: 34
注册时间: 2008-08-12 18:24
来自: 山东

部分解决 apache二级域名的泛解析支持的问题

#1

帖子 alertger » 2009-04-23 10:19

我在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/
上次由 alertger 在 2009-04-23 16:07,总共编辑 8 次。
头像
szyzln
帖子: 910
注册时间: 2008-10-31 15:28
来自: 中国上海
联系:

Re: 请教 apache二级域名的泛域名解析支持的问题

#2

帖子 szyzln » 2009-04-23 12:12

确实。高手们应该对此技术进行文档技术
家乡:湖南张家界
头像
alertger
帖子: 34
注册时间: 2008-08-12 18:24
来自: 山东

Re: 请教 apache二级域名的泛域名解析支持的问题

#3

帖子 alertger » 2009-04-23 12:35

重复了 :em09
上次由 alertger 在 2009-04-23 17:07,总共编辑 2 次。
头像
alertger
帖子: 34
注册时间: 2008-08-12 18:24
来自: 山东

Re: 解决 apache二级域名的泛解析支持的问题

#4

帖子 alertger » 2009-04-23 15:58

目前的问题是
例如域名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设定具有优先权么?
回复