`
tigerli
  • 浏览: 101648 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

下用rewrite实现动态二级域名解析(转)

阅读更多
先前写过一篇通用的动态域名解析: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”有各种变量,请查阅相关文档。

分享到:
评论

相关推荐

    URL重定向,动态加载二级域名

    实现动态加载二级域名通常需要服务器端的支持,例如使用DNS(域名系统)动态解析或配置,以及编程语言中的路由规则设定。在.NET环境中,可以通过IIS的URL重写规则或自定义中间件来实现;在Node.js中,可以使用...

    IIRF+IIS6.0动态二级域名

    标签进一步细化了文档的主题方向,明确了文档将涵盖的技术点包括IIRF的使用、动态域名绑定的实现方法,尤其是聚焦于二级域名的动态绑定,以及与之密切相关的ISAPI技术。ISAPI是IIS服务器的接口标准,使得外部程序...

    二级域名分发系统PHP源码-附安装教程.zip

    1. **域名解析**:系统需要与DNS(Domain Name System)进行交互,将主域名下的二级域名映射到相应的IP地址或服务器路径。这通常通过PHP的DNS解析库如`dns_get_record()`函数来实现。 2. **数据库管理**:系统需要...

    二级域名重写 二级域名重写

    根据提供的标题、描述、标签及部分内容,我们可以了解到讨论的主题是“二级域名重写”,下面将对这一主题进行详细的解析。 ### 二级域名重写的概念 首先,我们需要理解什么是二级域名重写。简单来说,二级域名重写...

    伪静态和url重写 实现二级域名

    总结来说,伪静态和URL重写是提高网站用户体验和SEO的重要手段,结合二级域名的泛解析,可以在不增加服务器管理负担的情况下,为用户提供更直观、更友好的网址。在IIS服务器上,通过恰当的配置,可以轻松实现这一...

    基于ASP的二级域名转向系统 特制.zip

    这些工具允许我们定义规则,将用户请求的二级域名解析为特定的目录或文件。例如,二级域名sub.example.com可以映射到服务器上的wwwroot/sub目录。 2. **DNS配置**:在DNS服务器上,需要为每个二级域名创建A记录或...

    apache 二级域名解析实现方法

    本文将详细介绍如何在Apache环境下实现二级域名解析。 #### 二、准备工作 为了能够顺利实现二级域名解析,我们需要完成以下几项准备工作: 1. **拥有一个泛域名解析的顶级域名**:比如 `domain.com`。这通常需要...

    asp.net 开发二级域名源代码

    总之,这个源代码项目展示了如何使用ASP.NET和URLRewriter库来实现二级域名的功能,提供了更佳的用户体验和可扩展的网站架构。通过深入研究源代码,开发者可以学习到如何在实际项目中灵活运用这些技术。

    asp.net用url重写URLReWriter实现任意二级域名 高级篇.docx

    1. **泛解析**:泛解析是指设置DNS记录,使未定义的二级域名都指向同一IP,这样可以让URLReWriter捕获所有二级域名请求,实现任意二级域名的功能。 2. **代码实现**:可能需要对URLReWriter的源码进行修改,以适应...

    基于ASP的免费二级域名转向系统.zip

    通过URL重写,二级域名可以映射到主域名下的某个特定路径,实现转向。 【服务器变量和HTTP响应头】 在处理二级域名转向时,ASP会使用服务器变量(如REQUEST.ServerVariables)来获取HTTP请求的相关信息,比如主机...

    最新快乐DNS二级域名分发开源源码

    # 安装说明 * 1、程序的框架是Laravel 5.8,因此需要环境... * 确保 Apache 启用了 mod_rewrite 模块以支持 .htaccess 解析。 * Nginx 伪静态配置 location / { try_files $uri $uri/ /index.php?$query_string; }

    移动网站二级域名 m 重定向到子目录

    在构建移动网站时,为了优化用户体验和搜索引擎排名,经常需要将二级域名(m.example.com)重定向至主站的一个子目录(如:example.com/m/)。这样可以确保网站内容的一致性和便于管理。本文将详细解释如何通过两种...

    百度知道泛解析无限二级域名

    在IT行业中,"百度知道泛解析无限二级域名"是一个关于网站建设和搜索引擎优化(SEO)的话题。这个主题涉及到如何利用特定的技术手段,使一个网站能够通过泛解析生成无数个二级域名,以此来构建一个站群系统。站群...

    apache 二级域名解析 (window与linux)

    总结一下,Apache 二级域名解析在Windows和Linux上主要的区别在于Windows使用主机文件,而Linux则利用Apache的`mod_rewrite`模块配合`vhost.map`文件来实现。这种方法允许灵活地管理和配置多个二级域名,而无需改动...

    MVC二级域名泛解析

    这可以通过二级域名泛解析来实现,尤其在使用ASP.NET MVC框架时。本文将深入探讨这个主题,帮助你理解如何设置和管理这种解析方式。 ### 1. MVC框架与二级域名 ASP.NET MVC是一种模型-视图-控制器(Model-View-...

    最简单快速的Apache二级域名实现方法介绍

    Apache 二级域名的设置是构建多站点环境的关键步骤,它允许你用不同的子域名来区分不同的服务或内容。本文将详细介绍一种最简单快速的方法来实现Apache二级域名。 首先,你需要确保你的顶级域名(如 `domain.com`)...

    [PHP 程序]菁菁二级域名系统 v1.0_qqymv1.0.rar

    使用此系统可能需要对服务器环境进行配置,如修改Apache或Nginx的配置文件以支持二级域名解析,以及PHP的配置调整,如增加内存限制或修改安全设置。 10. API接口: 若系统提供了API接口,其他应用程序或服务可以...

    apache+codeigniter 通过.htcaccess做动态二级域名解析

    本篇文章将深入探讨如何通过`.htaccess`文件实现动态二级域名解析,并提供相关的代码示例。 首先,`.htaccess`文件是Apache服务器中的一个配置文件,它允许我们在不修改主服务器配置的情况下,控制和定制网站的行为...

    ASP.NET中实现二级或多级域名

    ### ASP.NET中实现二级或多级域名的技术解析 在ASP.NET应用程序开发中,有时我们需要实现二级或多级域名的功能,比如为了区分不同的子站点或是提供个性化的访问路径等。然而,标准的URL重写技术(例如微软提供的URL...

    net用url重写URLReWriter实现任意二级域名

    标题与描述均提到了在.NET框架中利用URL重写(URL Rewriting)技术,通过URLReWriter组件实现任意二级域名的映射与处理。本文将深入解析这一技术的关键概念、实施步骤以及具体应用场景,旨在为.NET开发人员提供一个...

Global site tag (gtag.js) - Google Analytics