SAE新浪云绑定多域名实现子站点的方法

aowana 发布于 2016-11-22 22:33     分类:站长学院     来源:爱玩电脑     阅读(2526)    

新浪云应用简称 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' );
通过入口文件控制访问实现类似子站点的功能,是不是很简单。

标签Tags:SAE

本站内容未经允许欢迎转载但必须保留原出处链接,部分内容来源互联网版权归原作者所有。

赞 (1) 打赏
上一篇:Sogou 搜狗联盟赚钱技巧记录 下一篇:当今互联网如何获取独特的网站内容

推荐阅读

网友评论

头像
推荐

欢迎访问爱玩电脑网

分享最实用的电脑知识和应用技巧,关注IT行业资讯、学装机、玩硬件还有各种搞机新姿势~

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏
二维码A
微信扫一扫打赏
二维码B