CakePHP:链接地址问题(不用mod_rewrite,IIS)
实现的友好的urls,固然很好,但是有些场合因为服务器的原因等,我们无法使用重写规则,特别是当我们用CakePHP开发应用产品的时候,必须 考虑到用户不同的部署环境,所以必须考虑到不用urls重写,网站的链接地址方式。CakePHP的官方文档等默认的都是支持Url重写,强调一个约定环 境,约定目录,而实际生产环境于此不同,又不受控制。笔者在用CakePHP开发一个应用,部署时发现环境不支持Url重写,不得不回过头来修改代码,将 其中遇到的问题,发现这方面的资料很少,所以总结了一下,与大家一起探讨。
实际链接地址
/index.php?url=controllername/actionname/param,调试时常常用到
要实现不同环境的部署,网站的所有链接地址要使用Helper的HTML助手的link、url方法,不要直接写地址,这是刚开使用框架是最容易忽略的问题,等程序开发完了,再回来修改,还是很费精力的。
不支持url重写的配置
/app/config/core.php取消对其注释
Configure::write('App.baseUrl', env('SCRIPT_NAME'));
删除
/.htaccess /app/.htaccess /app/webroot/.htaccess
链接地址由 www.example.com/controllername/actionname/para 变为
www.example.com/index.php/controllername/actionname/param
问题:
www.example.com/index.php/controllername/actionname/param的模式会报告404错误,无法找到文件,修改为index.php?controllername/actionname/param可以实现访问,那 么实现 index.php/controllername访问,是需要配置web服务器、PHP、CakePHP,还是就是CakePHP bug,应该生成的是index.php?controllername,官方文档没有发现有关此的任何信息,像是这个问题根本就不存在一样,这不是个问 题吗?我对Url,参数传递知道的太少了吗?都是用?传递参数,搜索了也没有找到想要的说明。(后来试验发现,Apache可以使用/传递参数可以实现访问,我这里用的是IIS5.0服务器),所以CakePHP对于IIS的支持存在bug,跟踪html->url()方法:
cake/libs/router.php第857行,将
$output = str_replace('//', '/', $base . '/' . $output);
修改为
$output = str_replace('//', '/', $base . '?' . $output);
目录设置问题
├─web_root 根目录 │ └─应用目录 │ ├─应用目录 │ └─app 应用目录 └─cake cake目录
按文档进行配置webroot/应用目录/index.php
if (!defined('ROOT')) { define('ROOT', dirname(dirname(dirname(__FILE__))).DS.'应用目录'); } if (!defined('APP_DIR')) { define('APP_DIR', 'app'); }
问题:CSS、img等路径出现问题,页面无法正常访问
跟踪源码,这里设置
cake/dispatcher.php
if (strpos($this->webroot, $dir) === false) {$this->webroot .= $dir . '/' ;//$dir=APP_DIR }
解决:
去掉应用目录的app层,修改
if (!defined('APP_DIR')) {define('APP_DIR', '/'); }
转载于:https://www.cnblogs.com/hunchun/p/3727066.html
CakePHP:链接地址问题(不用mod_rewrite,IIS)相关推荐
- UIWebView / NSURL / NSBoundle 相关应用 (实例,加载完成前的背景, 默认safari打开链接地址等)...
UIWebView可以让你创建一个网页浏览器,类似safari,而不是在程序中启动safsri哦.是不是觉得很棒呢?废话少说,切入正题. 一.创建UIWebView CGRect bouds = [[ ...
- html怎么给表格加a链接地址,html基础02-图片标签、绝/相对地址、表格的属性、链接的属性及链接的分类、name定义锚点的名称、编码...
图片标签(单标签 ,行内块标签) 图片的语法: 图片的属性 l 图片的路径 src="图片的地址"(1.网上url 2.本地的绝对地址 3.本地的相对地址) l 图片的宽度 wid ...
- java 新浪短链接_java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java | 学步园...
仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java String sLongUrl = "http://www.zuidaima.com/share/1550463 ...
- java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java
原文:仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java 源代码下载地址:http://www.zuidaima.com/share/1550463378934784.htm ...
- 如何获取音乐链接地址
http://blog.csdn.net/pipisorry/article/details/50389634 lz亲试,各类网站的音频皆可下载 操作步骤 chrome浏览器(firefox,360, ...
- 获取微信推文的实际链接地址(包含JSON数据以及推文msg_data_id)
前提: 现在随着公众平台的要求越来越多,搜狗微信的爬虫难度越来越高,很多爬虫都没有用了,但是现在很多业务还是要用到历史推文的一些数据,其实很多数据(阅读量.点赞数.封面图片地址.标题.简介)都可以用过 ...
- php网页中出现问号,HTML_地址栏中的问号有什么作用,之前我们曾经解释?过链接地址 - phpStudy...
地址栏中的问号有什么作用 之前我们曾经解释?过链接地址中CSS和JS后带的问号是做什么的,但一些同学同样发现浏览器地址栏中的URL链接也经常会带问号. 比如这样的链接: http://www.xxx. ...
- 记一次获取QQ音乐播放源链接地址
目标链接: https://y.qq.com/portal/playe... 分析network 发现一个请求: 双击打开发现就是歌曲播放源地址 紫棋小姐姐唱歌真好听~ 记住这个链接,并且多打开几个试 ...
- 用批处理整理百度MP3上歌曲排行榜MP3及LRC文件的批量下载链接地址(含图文教程)
http://bbs.wuyou.com/viewthread.php?tid=192322 本文结构如下: 一.缘起:问题的提出 二.试探:徒劳而返 三.峰回路转:芝麻!开门! 四.万事俱备:xml ...
最新文章
- 微信小程序-设置启动页面
- NLP技术中的Tokenization
- Flask Web 开发 错误页面自定义
- Struts2中使用OGNL表达式投影(过滤)集合
- python怎样把两个图画到一起_python实现两张图片拼接为一张图片并保存
- C++/Java线程之分
- nginx学习笔记003---Nginx代理配置_注意,在Windows中路径要用/
- 计算机三级之嵌入式系统学习笔记4
- ui分离的进程 如何查找窗口句柄_如何使用 Linux screen
- 是指直接进行国际联网的计算机信息网络,网络安全合规指引题库:计算机信息网络直接进行国际联网,可以使用邮电部国家公用电信网提供的国际出入口信道。单位和个人也可以自行建立信道进行国际联网。()...
- WIN7无法被远程桌面问题
- android多点触控参数,转 android 下的webview 设置多点触控放大
- RunC漏洞导致容器逃逸(CVE-2021-30465)
- 澳拳击袋鼠体型巨大 身高超2米体重近200斤
- ObjectARX开发笔记(一)——分别使用AcEdInputPointFilter和AcEdInputPointMonitor实现光标提示功能
- 第7章第21节:双图排版:两张图片左右并列排版 [PowerPoint精美幻灯片实战教程]
- [ctfshow]web入门——文件上传(web156-web163)
- 使用matlab分析一段声音信号的均方根
- MxNet系列——how_to——multi_devices
- python参考书推荐--父与子的编程之旅