`

二级域名

    博客分类:
  • java
阅读更多

 

转自:http://www.iteye.com/topic/419100

 

 

二级域名支持是一个很简单的问题,把JavaEye的代码贴出来供你参考:
  # show website homepage
  def homepage
    if www?
      render :template => 'main/homepage', :layout => false
    elsif app?
      if logged_in?
        render :template => 'app/base/index', :layout => 'app'
      else
        redirect_to homepage_url
      end
    elsif job?
      render :template => 'job/homepage', :layout => 'job'
    elsif channel?
      @channel = request.subdomains[0]
      if File.exists?("#{RAILS_ROOT}/app/views/channel/#{@channel}/index.rhtml")
        render :template => "channel/#{@channel}/index", :layout => 'channel'
      else
        render :file => "#{RAILS_ROOT}/public/404.html", :status => 404
      end
    elsif blog?
      @blogs = @blog_owner.blogs_by_page params[:page]
      render :template => 'blog/index/index', :layout => 'blog'
    elsif group?
      Group.increment_counter(:visit_count, @group.id)
      render :template => 'group/index/index', :layout => 'group'
    else
      redirect_to homepage_url
    end
  end

 

------------------------------------------------------------------------------------

 

  protected
  def www?
    return request.subdomains && request.subdomains[0] && request.subdomains.length == 1 && request.subdomains[0] == 'www'
  end
 
  def job?
    return request.subdomains && request.subdomains[0] && request.subdomains.length == 1 && request.subdomains[0] == 'job'
  end

  def app?
    return request.subdomains && request.subdomains[0] && request.subdomains.length == 1 && request.subdomains[0] == 'app'
  end
 
  def channel?
    return request.subdomains && request.subdomains[0] && request.subdomains.length == 1 && RESERVED_DOMAIN.include?(request.subdomains[0])
  end

 

 

 

 

 

判断一下subdomains,根据不同的域名做不同的处理,就这么简单。

 

 

我的作法也是参考了你n年前的只言片语写的,这回算是有幸见着原装的了。
有一个问题,就是比较关键的 blog? 方法能放上来吗?
还有一个问题,就是如:http://netfork.iteye.com/blog/XXX这样的效果似乎上面的代码并没有给出实现方法吧。

 

 

 

  def blog?
    if request.subdomains && request.subdomains[0] && request.subdomains.length == 1 && !RESERVED_DOMAIN.include?(request.subdomains[0])
      @blog_owner ||= User.find_by_domain(request.subdomains[0])
      return !@blog_owner.nil?
    end
    return false
  end
  def group?
    if request.subdomains && request.subdomains[1] && request.subdomains[1].eql?("group") && request.subdomains.length == 2
      @group ||= Group.find_by_domain request.subdomains[0]
      return !@group.nil? && @group.active?
    end
    return false
  end

 

/blog/xxx 就是标准的Rails路由映射,只不过这种controller需要加一个filter去判断进来的域名,如果不是博客域名访问过来的话就要redirect。

 

 

  before_filter :blog_domain_required, :except => [:rss_blog, :show]
  def blog_domain_required
    redirect_to homepage_url and return false unless blog?
  end

 

 

分享到:
评论

相关推荐

    c#中实现二级域名完整示例

    在C#中实现二级域名是一项常见的任务,尤其在构建多租户应用或大型网站时,二级域名可以帮助我们为不同用户提供个性化的访问入口。本示例将深入探讨如何在C# Web应用程序中设置和管理二级域名。 首先,我们需要理解...

    asp.net core二级域名实现.zip

    在ASP.NET Core中实现二级域名的功能,可以帮助开发者为不同功能或服务创建独立的访问入口,提升用户体验并优化网站架构。下面我们将深入探讨如何在ASP.NET Core中实现二级域名。 首先,二级域名是主域名下的子域名...

    二级域名爬虫爬取工具

    在互联网世界中,二级域名是主域名下的一个子域名,常用于组织网站的不同部分或不同子站点。二级域名爬虫是一种专门针对此类域名进行数据抓取的工具,它能够高效地遍历并收集二级域名下的网页信息。在本文中,我们将...

    Nginx配置文件——一级域名、二级域名

    本文将深入探讨如何通过Nginx配置文件来设置一级域名和二级域名,以及如何利用Nginx的反向代理功能。 首先,了解一级域名和二级域名的概念至关重要。一级域名是互联网上顶级的域名,如.com、.org、.net等。二级域名...

    强大的二级域名字典

    ### 强大的二级域名字典解析 #### 一、引言 在网络安全领域,二级域名枚举是一项重要的技术手段,用于发现目标网站未公开的二级域名资源,进而为渗透测试或安全评估提供便利。本篇内容将围绕一个“强大的二级域名...

    二级域名分发美化版源码+搭建教程

    二级域名分发系统美化版,这个程序是快乐域名的,拿去用就可以了! 测试环境:EP主机 php7.1以上 安装教程: 1.创建网站,上传源码至网站根目录,解压、解压完成后直接打开域名进行安装 2.安装地址:域名http://你的...

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

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

    征途二级域名分发源码 增加签到和活动抽奖等功能

    征途二级域名分发源码基于最新版快乐二级域名分发3.1修改并增加签到和活动抽奖等实用功能所有内容均可在后台更改环境要求PHP >= 7.1.3PHP OpenSSL 扩展PHP PDO 扩展PHP Mbstring 扩展PHP Tokenizer 扩展PHP XML 扩展...

    免费二级域名转向系统

    【免费二级域名转向系统】是一种网络服务,允许用户将一个二级域名重定向到另一个目标网址。这个服务在互联网上广泛使用,尤其是对于个人网站、博客或者小型企业,他们可能希望用一个简短或易于记忆的二级域名来替代...

    快乐二级域名分发系统美化版v1.7源码.zip

    快乐二级域名分发系统美化版v1.7源码是一个专为网站运营者设计的工具,旨在提供高效、稳定且用户友好的二级域名管理解决方案。这个重置版v1.7意味着它经过了优化和改进,以提升用户体验并增强系统的性能。在源码层面...

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

    在IT行业中,URL重定向和动态加载二级域名是两种关键的技术,它们对于构建现代Web应用程序至关重要。下面将详细解释这两个概念及其应用场景。 首先,我们来理解URL重定向(URLRewriter)。URL重定向是一种网络技术...

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

    这个系统可以帮助网站管理员轻松地为用户提供个性化或特定功能的二级域名,例如子站点、用户个人空间或其他服务。在这个"二级域名分发系统PHP源码-附安装教程.zip"压缩包中,你将找到实现这一功能的所有源代码以及...

    Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf

    Nginx 中 rewrite 实现二级域名、三级域名、泛域名、路径的重写 Nginx 中的 rewrite 模块是实现 URL 重写和.redirect 的强大工具。下面我们将详细介绍 Nginx 中如何使用 rewrite 实现二级域名、三级域名、泛域名、...

    老枪二级域名系统朴素版

    "老枪二级域名系统朴素版"是一个针对主机域名管理的软件解决方案,主要功能是实现伪二级域名的泛解析。在互联网领域,域名是网站的重要标识,而二级域名则是主域名下的子域名,常用于区分不同的服务或内容板块。这个...

    二级域名系统

    二级域名转发则是将访问某一二级域名的请求自动重定向到另一个目标URL的过程。这通常用于网站迁移、内容整合或者服务外包等情况。通过设置二级域名转发,用户无需修改原始链接,仍可访问到正确的内容。例如,当...

    如何查看一个顶级域名下所有的二级域名

    当我们想要查看一个顶级域名下的所有二级域名时,可以通过使用DNS查询工具来实现这一目标。本文将详细讲解如何进行这个过程。 首先,我们需要了解基本的DNS查询命令——`nslookup`。`nslookup`是一个命令行工具,...

    二级域名查询工具

    能够查询主域名下的,二级域名,可以查询标题,使用c#开发

    最新二级域名分发系统改版源码分享

    `epay`目录可能包含了与易支付相关的接口代码,易支付是一种在线支付解决方案,通过这个接口,你的二级域名分发系统可以接受用户的支付。 `js`、`app`、`csjs`、`css`和`images`这些目录分别存储了JavaScript脚本、...

    ThinkPHP二级域名分发系统网站源码.zip

    《基于ThinkPHP的二级域名分发系统详解》 在互联网世界中,二级域名的分发系统扮演着重要的角色,尤其对于拥有多个子站点或者需要进行多业务区分的大型网站而言。ThinkPHP,作为国内广泛使用的PHP开发框架,以其...

Global site tag (gtag.js) - Google Analytics