찾다
php教程php手册FleaPHP 开发指南

FleaPHP 开发指南

Jun 21, 2016 am 09:06 AM
examplehtaccesspathinfourl

开发指南

FleaPHP 应用程序通过分析 URL 地址来确定要执行的控制器及动作,以及传递给动作方法的参数。

默认情况下,FleaPHP 应用程序通过

<code>http://www.example.com/index.php?controller=test&action=benchmark&source=1</code>

这样的 URL 地址来访问应用程序的每一个功能。但有时候你希望 URL 地址能够更好看一点,例如上面的地址变为:

<code>http://www.example.com/index.php/test/benchmark/source/1</code>

或者

<code>http://www.example.com/test/benchmark/source/1</code>

要实现上述两种效果,必须借助 FleaPHP 对 PATHINFO 模式和 URL 重写的支持。



PATHINFO

要使用 PATHINFO 模式来运行应用程序,只需要简单的设置应用程序选项 urlMode 为 URL_PATHINFO 就可以了。

采用 PATHINFO 时,对于相对地址,必须改写为使用 / 开头的绝对地址。例如 css/style.css 应该写为 /css/style.css,而 images/banner.jpg 要写为 /images/banner.jpg。除了图片、CSS 样式表和 JavaScript 文件外,对网站其他文件的引用也要使用绝对地址。
这个要求同样适用于 URL 重写模式。



URL 重写

URL 重写比起 PATHINFO 来复杂得多,而且有一些限制。

  • 目前 FleaPHP 对 URL 重写的支持还很简单,与 PATHINFO 相比仅仅是从 URL 地址中隐藏了 index.php 入口文件的名字;
  • URL 重写需要 Apache 的 mod_rewrite 模块支持(IIS 用户可以使用一些商业软件);
  • 必须配置 Apache 或者 .htaccess 文件,以便启用 mod_rewrite 模块;
  • 对于复杂的目录结构,你不得不编写更多的重写规则。

好了,希望上面的话没有吓到你。那么看看最简单的情况:

<code>RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ /index.php/$1 [L]</code>

上面的重写规则很简单,首先是启用 URL 重写。然后是判断请求的文件是否已经存在。只有当请求的文件不存在时才进行 URL 重写。

把上述内容保存到应用程序根目录,文件名为 .htaccess。

很奇怪,在 Windows 资源管理器里面不允许你建立 .htaccess 这样只有扩展名的文件。所以你必须先将文件保存为其他名字,例如 app.htaccess。然后进入命令行窗口(通过开始菜单运行 cmd.exe 程序即可),输入 ren app.htaccess .htaccess 命令来对文件改名。

最后,修改应用程序设置的 urlMode 选项为 URL_REWRITE。



如何生成 URL 地址

在 FleaPHP 应用程序中,我们总是应该使用 url() 函数和 FLEA_Controller_Action::_url() 方法来生成 URL 地址。这样不管 urlMode 选项怎么设置,我们都可以确保应用程序生成可以工作的 URL 地址。

例如 url('test', 'benchmark', array('source' => 1)) 这样的调用,在不同 urlMode 设置下,生成的 URL 地址也不同。

这种特性,可以避免因为应用程序修改了 urlMode 选项,而导致需要手工替换全部 URL 地址的问题。



更复杂的自定义 URL 地址

正在开发的 URL 路由功能,可以让应用程序获得完全的自定义 URL。例如

<code>http://www.example.com/index.php?controller=article&action=view&article_id=123</code>

可以用下面的地址来代替。不但好看,而且便于搜索引擎索引文件。

http://www.example.com/article/123



성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구