SAE新浪云绑定多域名实现子站点的方法
博客专区 > AOWANA 的博客 > 博客详情
SAE新浪云绑定多域名实现子站点的方法
AOWANA 发表于12个月前
SAE新浪云绑定多域名实现子站点的方法
  • 发表于 12个月前
  • 阅读 15
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: 新浪云应用简称 SAE 作为国内最早的云应用平台之一,产品深受广大开发者的喜爱,无论是性能还是稳定性都是数一数二的, 今天分享一篇 SAE 绑定多个域名实现类似子站点的功能,本方法仅支持采用唯一入口的网站应用。

新浪云应用简称 SAE 作为国内最早的云应用平台之一,产品深受广大开发者的喜爱,无论是性能还是稳定性都是数一数二的, 今天分享一篇 SAE 绑定多个域名实现类似子站点的功能,本方法仅支持采用唯一入口的网站应用。

所谓唯一入口就是网站的所有请求都通过一个文件进入,目前流行的PHP框架都是采用唯一入口,例如 ThinkPHP 、CI 、Laravel等所有请求都是通过 index.php 文件进行访问。

SAE实现子站点示意图

首先将需要的域名绑定至应用,这里以 a.com   b.com    c.com 作为示例,用户的整个访问流程如上图所示,所有请求都通过根目录下的 index.php 进入,index.php 通过判断host_name决定载入哪个入口文件实现类似子站点的功能。

整个应用中文件的目录结构如上图所示 root 表示应用根目录。

实现子站点功能需要URL伪静态支持,我们通过修改 config.yaml 文件开启配置 UrlRewrite ,下面是配置代码

name: aowana.com
version: 1
handle: 
- rewrite: if( path~"^/(.*)$") goto "/index.php?$1 [L, QSA, L]"

这样一来无论是 a.com   b.com  c.com 下的访问都会进入根目录下的 index.php 文件,既然 index.php 已经接管所有访问,下一步我们通过 index.php 进入分配决定访问哪个子站点,下面是 index.php 代码示例。

<?php

# 获取域名
$host = $_SERVER['HTTP_HOST']; 

# 当前路径
$path = dirname(__FILE__); 

/*
 * 通过 $host 重新定义 $path
 * 域名未定义时禁止访问
 */

switch ( $host )
{
	case 'a.com':
		$path .= '/a.com';
		break;

	case 'b.com':
		$path .= '/b.com';
		break;

	case 'c.com':
		$path .= '/c.com';
		break;

	default :
		exit('域名未定义,禁止访问!');
		break;
}

# 域名子站点的入口
require( $path . '/home.php' );

通过入口文件控制访问实现类似子站点的功能,是不是很简单。

文章出处:爱玩电脑网 AOWANA.com
原文地址:http://aowana.com/content/1496/sae-zizhandian.html

标签: PHP
共有 人打赏支持
粉丝 14
博文 29
码字总数 2407
×
AOWANA
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: