Url风格
- 复习一下 贴心猫系统的 Mkv路由
- 新闻首页:news
- 新闻分类列表:news-1234
- 新闻详情:news.5678
- 楼盘首页:house
- 楼盘详情:house.5678
- 楼盘图片:house.5678.pics
- Url风格
- 首先,我们把地址补充完整(省略域名)类似为:/home.php?news.2018-88-8899
- 这是默认的动态url,本节讨论 要实现如下风格的url:
- 静态地址:/html/news/2018/88-8899.htm
- 伪静态地址:/home/news.2018-88-8899.htm
- Pathinfo模式:/home.php/news.2018-88-8899
- Pathinfo模式+htm后缀:/home.php/news.2018-88-8899.htm
贴心猫静态,伪静态实现;其实非常简单!
(如果服务器设置碰到的麻烦,不能算在内...)
静态页实现
- /_config/配置
- 配置模板目录下的
/_config/*.*
相关文件;
- 可以分开模型配置:如va_home.php(首页),vc_news(新闻),
配置 c.vmode
值为 static
即可;
- 如果页面还未生成静态,依然打开的是动态页;
- 访问页面(不管是静态还是动态)会自动生成静态或(按设置)更新静态页;
- 后台批量生成静态页
- 可在后台 批量生成静态页;
- 操作入口:
后台 >> 工具 >> 系统工具 >> 系统缓存 | 静态
- 温馨提示
- 生成实体 html 静态:占用服务器空间,维护量大;已不提倡使用;
- 现在的 缓存技术 和 伪静态技术非常普及,生成实体静态文件已无多大意义;
- 自 v4.8开始,已不建议生成实体静态;
伪静态实现
- 配置系统
- 文件:\root\cfgs\sycfg\sy_vopcfg.php
- 找到某一模板节点如['comm'] 下,(把注释的4行)去掉前两行注释:
- 参考下方
配置代码
:
- 配置结果
- 这时候,你打开首页,或某动态页:查看生成的链接(不要点击),已经是伪静态链接了;
- 理论上,有了以上配置,贴心猫系统已经配置完成!?
- 继续点击这些 伪静态链接:可能是类似 404 错误:
- 那就是剩下的事情 --- 配置web服务器!且看下文分解:
- 配置代码
'开心猫市', // Custmao
'/home.php',
'?', // [1.屏蔽此行:为动态模式]; [2.设置为`?`:为Pathinfo模式]; [3.设置为`/`:为伪静态模式]; 参考:imcat.txjia.com/book.php/super-rewrite
//'.htm', // 伪静态后缀
//'0', // 建议不开启, 伪静态-替换第一层/chn/目录,需要调整伪静态规则
//array('/home.php','/home.htm'), // 建议为空, 伪静态首页替换;需要增加伪静态规则
提示:提取的代码块,上下文省略...
本系统的sy_vopcfg.php源码
Web服务器
- Apache 配置
- 复制文件:
\@read\rbak\.htaccess
复制到web(或系统)根目录,可根据需要,删除不必要的注释;
- 开启apache的url_rewrite模块;
参考链接
- 重启web服务 即可。
- IIS7+ 配置
- 如需要:先下载安装 URL Rewrite;
- 导入配置文件:在站点管理界面,找打URL重写,导入上述
.htaccess
文件到重写规则;
- 重启web服务 即可。
- Nginx 配置
- Nginx下设置伪静态方法与Apache差不多;
直接在nginx.conf (或者在对应的*.conf) 中找到需设置伪静态规则的服务器对应字段;
在server{ location/{ } }
中添加代码;
- 或者:自行找资料,把上述
.htaccess
规则转化为Nginx规则;
本节后面,也有参考转化工具链接;
- 配置好,重启web服务 即可。
配置组合
- [01]动态url模式 (屏蔽后四行):
- eg. /home.php?news, /home.php?news.2018-88-6699
'开心猫市', // [01]动态url模式
'/home.php',
//'/', // 屏蔽
//'.htm', // 屏蔽
- [02]Pathinfo模式 (设置第三行为
'?',
,第四行可有可无):
- eg. /home.php/news, /home.php/news.2018-88-6699
'开心猫市', // [02]Pathinfo模式
'/home.php',
'?', // 把`?` ->替换为 `/`
//'.htm', // Url后缀,可有可无
- [03]伪静态模式 (设置第三行,第四行):
- eg. /home/news.htm, /home/news.2018-88-6699.htm
'开心猫市', // [03]伪静态模式
'/home.php',
'/', // 把`.php?` ->替换为 `/`
'.htm', // 伪静态后缀
- 配置选择
- 动态模式:web服务器不需要任何配置,如果是虚拟主机,没有服务器配置权限,且不支持Pathinfo,那只能选动态模式
- Pathinfo模式:支持pathinfo即可使用(nginx默认是不支持pathinfo)
- 伪静态模式:如果自己可自由设置服务器,或者可以设置伪静态规则方可使用
- 如果是nginx,设置支持Pathinfo模式和伪静态模式都要设置
nginx.conf
,不如直接设置伪静态模式好了
- 最后两行配置:
- 一般建议屏蔽;需要者,根据情况开启,并设置伪静态规则
//'0', // 建议屏蔽, 伪静态-替换第一层/home/目录,需要调整伪静态规则
//array('/home.php','/home.htm'), // 建议为空, 伪静态首页替换;需要增加伪静态规则
- 高级配置-再去一层目录
- url地址如:/home/news.2018-88-8899.htm,如果需要再去掉
/home/
目录;
- 上述 配置代码,启用第3行代码,设置为非零即可;
- 提示1:伪静态规则,也要相应的修改;
- 提示2:博客/房产:前端只有一组主要前端模板,可用此方案,
- 提示3:企业站,因前端有多语言版,最多只能针对一个语言版本 去掉一层目录如
/vcn/
,建议不用此方案;
- 高级配置-首页静态化
- 首页如:/home.php,也要静态化;
- 上述 配置代码,启用第4行代码,去掉//屏蔽符即可;
- 提示4:需要增加一行伪静态规则;
工具和资源