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得到最大的一个值(如 ...
随机推荐
- windbg无故不显示command窗口
原文最早发表于百度空间2010-02-05 有的dump可以显示,有的不行……上网找了一通没有收获,自己搞了一下,终于在点击“window”——“cascade floating windows”后出 ...
- Html Link 标签
Html Link 标签 Link 是 HTML Head 内部标签 <html> <head> <!-- link标签:rel="shortcut icon& ...
- Dijkstra双栈算术表达式求值
在看algs4的时候偶然发现了这个算法,又回顾了一遍当时数据结构课程里讲过的知识,当时很不在意.迟早是要还的,哎 用python实现了,比较麻烦的是我现在没有解决bash传参的问题,''(" ...
- Python爬虫(四)——豆瓣数据模型训练与检测
前文参考: Python爬虫(一)——豆瓣下图书信息 Python爬虫(二)——豆瓣图书决策树构建 Python爬虫(三)——对豆瓣图书各模块评论数与评分图形化分析 数据的构建 在这张表中我们可以发现 ...
- [c/c++] programming之路(13)、函数
一.函数 #include<stdio.h> //stdio.stdlib标准库 #include<stdlib.h> //代码重用, 函数的诞生,C语言主要是函数组成 //写 ...
- Unicode编码问题 如:\u529e\u7406\u9996\u6c7d\u52a0\u6cb9
python 遇到\u529e\u7406\u9996\u6c7d\u52a0\u6cb9 解决方法: a = "\u529e\u7406\u9996\u6c7d\u52a0" b ...
- 【C++】10.18日的C++笔记
使用memset初始化一个类会导致类中的指针和虚函数表出现问题.相关链接 使用memset(a,1,sizeof(a))初始化a数组不会达到预期的效果,因为memset会把每个字节赋值为1就会变成16 ...
- python 简单的自定义异常类模版
class CustomError(Exception): def __init__(self,ErrorInfo): super().__init__(self) #初始化父类 self.error ...
- CSP中的选择
P ∩ Q (P or Q) 由机器做出选择,环境无法控制,设计软件时只实现一个即可 P[]Q一般选择(Genral choice) 环境可以控制选择P或Q,若P不可接受这个动作,则执行Q,若Q不可接 ...
- Lab 7-1
Analyze the malware found in the file Lab07-01.exe. Questions and Short Answers How does this progra ...