首页 apache下用rewrite完成静态二级域名解析

apache下用rewrite完成静态二级域名解析

举报
开通vip

apache下用rewrite完成静态二级域名解析apache下用rewrite完成静态二级域名解析 Apache下用rewrite实现动态二级域名解析 Apache下用rewrite实现动态二级域名解析.txt师太,你是我心中的魔,贫僧离你越近,就离佛越远„„初中的体育老师说:谁敢再穿裙子上我的课,就罚她倒立。Apache下用rewrite实现动态二级域名解析 [2006-12-27 11:00:05] | 技术转贴 实现动态二级域名解析的一个关键就是,把特有的名字怎么能够提出来,因为RewriteRule中的匹配,是不包括域名的匹配的,其实这其中就是一层窗...

apache下用rewrite完成静态二级域名解析
apache下用rewrite完成静态二级域名解析 Apache下用rewrite实现动态二级域名解析 Apache下用rewrite实现动态二级域名解析.txt师太,你是我心中的魔,贫僧离你越近,就离佛越远„„初中的体育老师说:谁敢再穿裙子上我的课,就罚她倒立。Apache下用rewrite实现动态二级域名解析 [2006-12-27 11:00:05] | 技术转贴 实现动态二级域名解析的一个关键就是,把特有的名字怎么能够提出来,因为RewriteRule中的匹配,是不包括域名的匹配的,其实这其中就是一层窗户纸,把域名先重写放到“路径”中,再对“路径”重写一次就可以了,也就是说加一步过渡。这样说大概还一头雾水,给个实例。 首先按我上次写的文章的那个需求写一个,假设动态解析*.iecn.cn。 注意要先做一个所谓的范域名解析,就是说把所有*.iecn.cn解析到某个IP上去,这不是本文章讨论范围就不细说了。 Apache中相关配置如下: ServerAdmin yourmail@domain.com DocumentRoot /YourWwwRoot/.default ServerName all-sites ErrorLog logs/all-sites-error_log CustomLog logs/all-sites-access_log common # 下面三行实现动态解析 RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.iecn\.cn$ RewriteRule ^/(.*)$ /%{SERVER_NAME}/$1 ##注## RewriteRule ^/([a-z0-9\-]+)\.iecn\.cn/(.*)$ /YourWwwRoot/$1/$2 [L] # 没有解析到的情况下扔到自己的一个PHP中做一下处理 RewriteRule ^.*$ /index.php [L] 注意我标注的地方,那一步就是一个过渡,说一下过程吧,假设现在访问: 经第一步重写,变成 /zhong.iecn.cn/xxx 经第二步重写就是 /YourWwwRoot/zhong/xxx 了,其他的操作与我行 前说的基本就差不多了。 再举一个可能更常见的实例,假设一个博客系统,要求把 隐式的重写成 这里面的xxx可以看做是一个用户名,想必类似这样的需求大家一定都见过很多了,不过多解释了。 同意先做范域名解析这里不多说。在Apache中做如下重写(只写Rewrite部分了): RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.iecn\.cn$ RewriteRule ^/?$ /%{HTTP_HOST} RewriteRule ^/([a-z0-9\-]+)\.iecn\.cn/?$ /blog.php?u=$1 [L] zz from ;tid=1013 Apache下用rewrite实现任意域名的动态解析 Apache的mod_rewrite模块功能非常强大,我以后会写更多的实例 出来。 关于mod_rewrite的使用,不想多说,提供两个相关文档的地址: html 如果你只是想用一个现成的你可以直接把我的copy过去改改,如果 想从技术上搞清楚,那么首先要掌握两方面的技术: Apache下mod_rewrite的使用(可参照我上面提供的两个地址) 正则 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式(这是一门在很多地方都非常有用的技术) 废话不多说,说一下我在IECN.NET服务器的实际配置。 我习惯使用NameVirtualHost,如果你的服务器中只想用这种动态的 解析,直接在配置文件中做是一样的,如果想保留自己一些特殊站点 的配置,还是用NameVirtualHost吧。 在Apache中,如果启用了NameVirtualHost,在没有匹配到的解析 的情况下,会默认到第一组VirtualHost中,所以我们的动态解析自 然是放到第一组VirtualHost(有关apache的一些配置这里就不多 说,自己查阅相关文档。),如下: ServerAdmin yourmail@domain.com DocumentRoot /YourWwwRoot/.default ServerName all-sites ErrorLog logs/all-sites-error_log CustomLog logs/all-sites-access_log common # 下面两行实现动态解析 RewriteCond /YourWwwRoot/%{SERVER_NAME} -d RewriteRule ^/(.*)$ /YourWwwRoot/%{SERVER_NAME}/$1 [L] # 没有解析到的情况下扔到自己的一个PHP中做一下处理 RewriteRule ^.*$ /index.php [L] 把YourWwwRoot换成你自己的路径,注意这里的ServerName没有让 它起作用,关建看这两行: RewriteCond /YourWwwRoot/%{SERVER_NAME} -d RewriteRule ^/(.*)$ /YourWwwRoot/%{SERVER_NAME}/$1 [L] 第一行是一个rewrite条件,这里的条件是:如果存在路径 /YourWwwRoot/%{SERVER_NAME},%{SERVER_NAME}就是你访问站点的 域名,-d就表示存在这个路径的意思(如果是文件则是-f); 第二行是一个rewrite规则,这个规则执行的前提是:符合规则的正则表达式匹配;符合它前面(也就是刚才说的第一行)rewrite条件。这里面是的匹配的是.*,也就是所有了,也就是说只要第一行的条件成立,它就会被重写到/YourWwwRoot/%{SERVER_NAME}/$1,% {SERVER_NAME}是站点的域名,$1则是匹配到的.*。 OK,现在就很清楚了,假设现在有www.domain.com指向到这个服务器,当你访问它时(这里假设没有在其他VirtualHost解析这个域名),看看它是如何工作的: 首先它在没有找到匹配的解析时,就来到了这组默认的VirtualHost; 判断 /YourWwwRoot/www.domain.com 是否存在; 如果存在,重定向到 /YourWwwRoot/www.domain.com。 假设你访问 ,就会重定向到系统的 /YourWwwRoot/www.domain.com/test.html。 那也就是说你在 YourWwwRoot 下建一个与域名同名的目录(并具备apache访问的权限),就实现了这个域名的解析。 说起来似乎有点难懂,其实很简单的。 这是一个对任意域名的动态解析,哪天有空再写一下对同一域名下二级域名的解析,其实对这个略做改动就可以了。 有什么问题可以到这里讨论: zz from 本文链接:
本文档为【apache下用rewrite完成静态二级域名解析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_624976
暂无简介~
格式:doc
大小:17KB
软件:Word
页数:0
分类:互联网
上传时间:2018-04-29
浏览量:8