先前写过一篇通用的动态域名解析:
http://www.iecn.cn/article-html-itemid-341-type-blog.html
那个相对简单一些,另外还有一种更常见的情况就是二级域名动态解析,这在一些个人主页系统、博客系统中的应用非常常见。
关于动态解析的,在无前那篇文章中基本上讲过了,不想再重复了,另外有关Apache的Rewrite大家最还是看Apache的官方文档,这里只想说说实例。
实现动态二级域名解析的一个关键就是,把特有的名字怎么能够提出来,因为RewriteRule中的匹配,是不包括域名的匹配的,其实这其中就是一层窗户 纸,把域名先重写放到“路径”中,再对“路径”重写一次就可以了,也就是说加一步过渡。这样说大概还一头雾水,给个实例。
首先按我上次写的文章的那个需求写一个,假设动态解析*.iecn.cn。
注意要先做一个所谓的范域名解析,就是说把所有*.iecn.cn解析到某个IP上去,这不是本文章讨论范围就不细说了。
Apache中相关配置如下:
<virtualhost _default_:80="">
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]
</virtualhost>
注意我标注的地方,那一步就是一个过渡,说一下过程吧,假设现在访问:
http://zhong.iecn.cn/xxx
经第一步重写,变成 /zhong.iecn.cn/xxx
经第二步重写就是 /YourWwwRoot/zhong/xxx 了,其他的操作与我行前说的基本就差不多了。
再举一个可能更常见的实例,假设一个博客系统,要求把
http://xxx.iecn.cn
隐式的重写成
http://blog.iecn.cn/blog.php?u=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]
-------------------------------
关于Aapache的rewrite,可能写起来就是那么几行,但这里面涉及到很多知识,有不清楚的可以查阅相关资料
rwrite实现APACHE绑定多域名
2007年07月26日 星期四 上午 10:59
编辑httpd.conf
在最后加上
QUOTE:
NameVirtualHost *
<VirtualHost *>
rewriteengine on
rewritecond %{HTTP_HOST} [^.]+\.alibaba\.uni\.cc$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ([^.]+)\.chinahtml\..com(.*) /$1$2
ServerAdmin webmaster@XXX.COM
DocumentRoot /www
ServerName chinahtml.com
ErrorLog logs/chinahtml.com-error_log
CustomLog logs/chinahtml.com-access_log common
</VirtualHost>
将http://username.chinahtml.com对于username的主页请求转换为对http://chinahtml.com/username的请求
---- 对于HTTP/1.1的请求包括一个Host: HTTP头,我们能用下面的规则集重写 http://username.chinahtml.com/anypath到/home/username/anypath。
注: “rewritecond”表明是条件重写规则,当满足后面定义的条件后才会应用下面的重写规则,“rewritecond”有各种变量,请查阅相关文档。
分享到:
相关推荐
Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf
URLRewriter 当用户注册账号,后台审核,会为用户动态生成一个二级域名网站,
NULL 博文链接:https://lovexuwenhao.iteye.com/blog/437632
伪静态二级域名设置方法: 一、空间主页以及写法: RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.52steel\.com$ RewriteCond %{HTTP_HOST} !^(www|wap)(.*)\.52steel\.com$ RewriteRule ^/?$ /%{HTTP_HOST} ...
Rewrite实现网站伪静态 http://www.aygqw.com
ASP.NET中实现二级或多级域名ASP.NET中实现二级或多级域名(修改UrlRewrite) 大家应该知道,微软的URLRewrite能够对URL进行重写,但是也只能对域名之后的部分进行重写,而不能对域名进行重写,如:可将 ...
首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容
UrlRewrite域名重写,全套代码,是vs2005.net .net2.0
# 安装说明 * 1、程序的框架是Laravel 5.8,因此需要环境... * 确保 Apache 启用了 mod_rewrite 模块以支持 .htaccess 解析。 * Nginx 伪静态配置 location / { try_files $uri $uri/ /index.php?$query_string; }
用urlrewrite实现的asp.net 网站的伪静态
为了实现图片防盗链,根据网络上搜集的资料加上自己的实践,终于实现了iis下的图片防盗链功能。 实施步骤: 1.下载比较出名的www.helicontech.com提供的ISAPI Rewrite软件的免费版本(免费版本虽然有一些功能上...
通过UrlRewrite组件实现url重写,可以优化url,对搜索引擎友好,被收录质量高等好处。
为什么使用UrlRewrite: 1 处理这样的情形:你要更改你的web应用中网页的结构 但你同时也要确保在你移动网页后 那些被人收藏的老URL不会成为死链接 2 其次可以隐藏网站所用的编程语言 还可以提高网站的可移植性 ...
urlrewrite.xml 博文链接:https://clarancepeng.iteye.com/blog/109413
本插件主要给使用虚拟主机的站长提供一个虚拟空间,建多个站,一个站绑定多个二级域名的功能。实现URL的隐藏转发,例如:bbs.itopapp.com绑定到虚拟主机上的bbs目录,浏览器中不会跳转到...
二、标准Rewrite模式: 1.在IIS的Isapi上添加个筛选器,筛选器名称Rewrite,可执行文件选择此目录的 Rewrite.dll文件; (如果没有选择此目录的 Rewrite.dll文件,请手工添加此目录下的httpd.ini中的Rewrite规则)...
本文实例讲述了Linux环境下Apache服务器配置二级域名的方法。分享给大家供大家参考,具体如下: (以域名www.csdn.net为例,现在需要配置一个二级域名blog.csdn.net指向主机地址) 首先,确认开启Apache配置文件...
Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式
IIS%2bWordPress利用UrlRewrite实现永久链接-Permanent-Links-的完美方案
apache_rewrite语法的详细解析,实现php的URL重写。