apache 二级域名解析实现方法
程序员文章站
2022-05-16 08:10:03
复制代码 代码如下: rewriteengine on rewritemap lowercase int:tolower rewritemap vhost txt:/usr...
复制代码 代码如下:
rewriteengine on
rewritemap lowercase int:tolower
rewritemap vhost txt:/usr/local/etc/apache/vhost.map
rewritecond ${lowercase:%{server_name}} ^(.+)$
rewritecond ${vhost:%1} ^(/.*)$
rewriterule ^/(.*)$ %1/$1
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
然后,在这个所在路径的目录下创建一个文件: vhost.map
内容为:
复制代码 代码如下:
www.domain.com /usr/local/www/data-dist/domain
bbs.domain.com /usr/local/www/data-dist/bbs
anyname.domain.com /usr/local/www/data-dist/anyname
以上部分都是:” 域名+空格+绝对路径” 的形式。
最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:
domain , bbs , anyname 等等,理论上可以无限。
这样,通过浏览器,访问 www.domain.com 时,实际*问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际*问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以
随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。
第一步:打开apache的配置文件httpd.conf,去掉loadmodule rewrite_module modules/mod_rewrite.so前面的#号。
第二步:打配置文件尾部加上
rewriteengine on
rewritemap lowercase int:tolower
#定义映像文件
rewritemap vhost txt:/apache/vhost/vhost.map
#处理变名
rewritecond %{request_uri} !^/icons/
rewritecond %{request_uri} !^/cgi-bin/
rewritecond ${lowercase:%{server_name}} ^(.+)$
这里做基于文件的重新映射
rewritecond ${vhost:%1} ^(/.*)$
rewriterule ^/(.*)$ %1/$1
rewritecond %{request_uri} ^/cgi-bin/
rewritecond ${lowercase:%{server_name}} ^(.+)$
rewritecond ${vhost:%1} ^(/.*)$
rewriterule ^/(.*)$ %1/cgi-bin/$1
注意:vhost.map文件是域名和空间映像的文件,格式如下:
http://www.abc.com/vhostusr/www.abc.com
http://www.xyz.com/vhostuser/www.xyz.com
http://www.cccbbbbs.net/vhostuser/www.ccbbbb.net
第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就ok了~~~
其实这个可以用php脚本来完成的,很简单的~~呵呵~~~
注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~
==============================================
方法二、
复制代码 代码如下:
rewriteengine on
rewritecond %{http_host} [^.]+\.域名\.com$
rewriterule ^(.+) %{http_host}$1 [c]
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
其他配置文件
接着在dns中开设一个泛解析到对应的ip地址。
就可以实现下面的方案。
域名:domain.com
绝对路径:/home/domain.com/
www.domain.com 自动解析到 /home/domain.com/www/
abc.domain.com 自动解析到 /home/domain.com/abc/
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹
直接建立子域名名称的文件夹即可使用。不需重启apache。/vhostuser/www.ccbbbb.net/vhostuser/www.xyz.com/vhostusr/www.abc.com