phpcms 路由配置
这是一个由apache多站点配置引发的"血案",本以为是本地多站点配置的问题,结果找了半天没找到相关配置,最后还是问的大腿,同时也了解一些关于c盘hosts文件的映射作用以及使用 ip访问 在多域名的情况下,会访问首先生效的域名。
主要的还是路由设置,说一下我发现这个问题的过程。
项目是phpcms的,有手机站和pc站,还有ecmall,因为域名不同,所以要配置本极apache服务器多站点,打开各自的主页。
修改本机hosts文件,修改apapche 服务器 httpd, httpd-vhosts文件 ,在httpd-vhosts里添加了相应站点的访问路径。
然后重启apache 。因为pc站的域名配置了相应的访问路径,没有问题,正常显示,但是手机站在httpd-vhosts里没有配置访问路径,也可以正常访问,当时我就震惊了。
效果是这样的:
hosts文件:

httpd-vhosts文件:

访问路径只配置了www.cms.localhost ,并没有配置wap.cms.localhost 为什么他还能正常访问到手机站呢? 我以为漏掉了什么,就百度啊百度啊,找配置啊找配置(整个过程很艰辛)然后还是没有发现原因,接着就去抱大腿了,害羞(✿◡‿◡)。
大腿告诉我 如下内容:
1.hosts: hosts只负责映射,映射成功即可访问,并不验证被映射地址的真假。
2.使用IP访问,多域名情况下,会访问首先生效的域名。
然后我百度了一下,了解了hosts,然后问大腿,我用的域名访问,经过hosts 会被解析成127.0.0.1 ,在多域名的情况下,不应该访问 我在apache多站点配置文件httpd-vhosts里配置的第一个域名对应的路径吗,大腿说是的。但是实际上是访问的手机站,然后重点来了:大腿说看看route.php 也就是phpcms的caches/configs/route.php 这个是phpcms 的路由配置默认访问路径文件。
在这里面

返回的数组中有了如上配置。然后在phpcms/libs/classes中的param.calss.php 这个类中进行了路由的参数处理:
//路由配置
private $route_config = ''; public function __construct() {
if(!get_magic_quotes_gpc()) {
$_POST = new_addslashes($_POST);
$_GET = new_addslashes($_GET);
$_REQUEST = new_addslashes($_REQUEST);
$_COOKIE = new_addslashes($_COOKIE);
}
// 载入route.php中的配置信息, 通过当前地址栏的url进行对比,然后进行一系列处理,最终 $_GET 中包含了当前地址栏里的url对应的访问路径。
// 这里的SITE_URL 就是你在地址栏里输入的url
$this->route_config = pc_base::load_config('route', SITE_URL) ? pc_base::load_config('route', SITE_URL) : pc_base::load_config('route', 'default');
// var_dump($this->route_config); //结果是route.php里相关的数组元素
if(isset($this->route_config['data']['POST']) && is_array($this->route_config['data']['POST'])) {
foreach($this->route_config['data']['POST'] as $_key => $_value) {
if(!isset($_POST[$_key])) $_POST[$_key] = $_value;
}
}
if(isset($this->route_config['data']['GET']) && is_array($this->route_config['data']['GET'])) {
foreach($this->route_config['data']['GET'] as $_key => $_value) {
if(!isset($_GET[$_key])) $_GET[$_key] = $_value;
}
}
if(isset($_GET['page'])) {
$_GET['page'] = max(intval($_GET['page']),1);
$_GET['page'] = min($_GET['page'],1000000000);
}
// var_dump($_GET);exit; 这里打印出的结果就是要前往的url路径
return true;
}
至于后来怎么跳转的,就没有再看,然后自己添加了一个mob.cms.localhost也可以正常访问手机站,到这里为什没回找到手机站的问题就解决了。
总结了一下:并不是所有的问题都出在自己的设置上,有时候应该自信一点,当初我怎么就没有在整个项目里直接搜 wap.cms.localhost呢 我竟然搜索的http://wap.cms.localhost 捂脸哭(┬_┬)
还是自己对框架不熟悉,需要在以后的需求中不断的实践,如果不是闲来无事重新配置这个,我还真不知道这个路由配置。
最后一点,抱着大腿,才能更快,更快乐的成长。手动开心♪(^∀^●)ノ 大腿人特别好,性格脾气都好,以后有能力了就去找大腿,还是跟着大腿混,嘿嘿嘿......
phpcms 路由配置的更多相关文章
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- ASP.NET WebForms MapPageRoute 路由配置
MapPageRoute 应该是 ASP.NET 4.0 中的东西,但现在我是第一次使用它,使用场景是:MVC 混合使用 WebForm,然后对 WebForm 进行路由配置,当然也可以使用 ISAP ...
- MVC路由配置
目录 URL Routing 的定义方式 示例准备 给片段变量定义默认值 定义静态片段 自定义片段变量 自定义片段变量的定义和取值 将自定义片段变量作为Action方法的参数 指定自定义片段变量为可选 ...
- ui-router带参数的路由配置
ui-router带参数的路由配置 使用ng-route的时候带参数的连接这样配置: $routeProvider.when('item/itemid/:itemid', { templateUrl: ...
- [水煮 ASP.NET Web API2 方法论](3-8)怎样给指定路由配置处理器
阅读导航 问题 解决方案 工作原理 代码演示 问题 如果仅仅针对指定的路由进行某些特定的消息处理,而不是应用于所有路由,我们应该怎么做呢? 解决方案 ASP.NET WEB API 的很多功能都内建了 ...
- Linux和Windows路由配置
Linux和Windows路由配置 一.配置路由 1- 原则上一台主机只能有一条缺省路由.如果一台主机上有多个网段的话,请配置能够上网的那个网段的网关为缺省路由 Linux配置缺省路由: ...
- WebForm MapPageRoute 路由配置(转载)
使用场景是:MVC 混合使用 WebForm,然后对 WebForm 进行路由配置 http://www.cnblogs.com/xishuai/archive/2015/02/26/web-form ...
- cisco 路由配置
Cisco路由配置基础 刚刚接触cisco路由配置,下面是学习的笔记,感觉命令还是多敲才能熟悉 一. 所处状态各类 router> 用户处于用户命令状态,可以查看网络和主机 router# 用户 ...
- Cisco模拟器使用和静态路由配置
一. 模拟器使用 网络拓扑图 1. 模拟器搭建环境及网络结构 2. 使用ios系统加载并配置 3. 加载3745ios后计算pc值以减小cpu的消耗 4. 然后使用CTRL+]+i得到最大的一个值(如 ...
随机推荐
- SCI_Call_Bsw_SetPwmMotorGroupB
Sci_Bsw.c -- definition MotorGroupB_cfg.c -- called in LatchControl_Magna.c: extern uint16 Sci_DRead ...
- 使用curl自动签到smzdm
curl -H 'cookie:urcookies' -e 'http://www.smzdm.com/qiandao/' -k 'https://zhiyou.smzdm.com/user/chec ...
- 树莓派3B安装LEDE
本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前 ...
- mac忘记操作密码
转载于:https://blog.csdn.net/wu110112/article/details/70312987 如果忘记mac登陆密码应该如何处理呢? 这里大家请勿着急,我来帮大家解决这个问题 ...
- Loj 6036 「雅礼集训 2017 Day4」编码 - 2-sat
题目传送门 唯一的传送门 题目大意 给定$n$个串,每个串只包含 ' .问是否可能任意两个不同的串不满足一个是另一个的前缀. 2-sat的是显然的. 枚举每个通配符填0还是1,然后插入Trie树. 对 ...
- webpack搭建项目时出现的报错“Module build failed (from ./node_modules/css-loader/dist/cjs.js) CssSyntaxError”
控制台出现的错误如下: webpack.config.js中的配置如下: module.exports={ entry:'./src/main.js', output:{ path:__dirname ...
- Injection的简单辨析
依赖注入(injection)是一种对任何编程语言都有效的概念.依赖注入背后的一般概念称为控制反转.根据这个概念,类不应该静态配置其依赖项,而应该从外部配置. 如果Java类使用此类的实例,则Java ...
- 【C++】10.18日的C++笔记
使用memset初始化一个类会导致类中的指针和虚函数表出现问题.相关链接 使用memset(a,1,sizeof(a))初始化a数组不会达到预期的效果,因为memset会把每个字节赋值为1就会变成16 ...
- css 简介 2
css css Table属性 border-collapse 设置是否把表格边框合并为单一的边框 border-spacing 设置表格标题的位置 empty-cells 设置是否显示表格中的空单元 ...
- [转]静态库、动态库,dll文件、lib文件,隐式链接、显式链接
转自:https://blog.csdn.net/dcrmg/article/details/53427181 静态链接.动态链接 静态库和动态库分别应用在静态链接方式和动态链接方式中,所谓静态链接方 ...