ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php

ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好。但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的 URL 地址来。 在使用 ThinkPHP 框架开发 Web 应用时,我们常常希望使应用程序的 URL 更加美观和符合 SEO(搜索引擎优化)的要求。ThinkPHP 支持通过 `.htaccess` 文件和 Apache 的 `mod_rewrite` 模块来实现 URL 重写,从而隐藏 URL 中的 `index.php` 入口文件,生成伪静态链接。以下是一系列详细的步骤来解释如何实现这一功能: 了解 `.htaccess` 文件的作用。`.htaccess` 是 Apache 服务器中的一种配置文件,允许我们在特定的目录级别上自定义网页配置,包括 URL 重写规则。这使得我们可以对 URL 进行美化,使其看起来更加直观和用户友好。 在 ThinkPHP 框架中,由于采用单一入口模式,通常的 URL 形式会包含 `index.php`,如 `http://127.0.0.1/index.php/Index/insert`。为了去掉这个入口文件,我们需要进行以下操作: 1. **启用 `mod_rewrite` 模块**: 打开 Apache 的配置文件 `httpd.conf`,找到 `LoadModule rewrite_module modules/mod_rewrite.so` 这一行,确保其前面没有 `#` 号,表示模块已启用。 2. **允许 `.htaccess` 文件生效**: 在 `httpd.conf` 中,找到与项目根目录相关的 `<Directory>` 标签,例如 `<Directory E:/html/myapp>`,将 `AllowOverride None` 修改为 `AllowOverride FileInfo Options`。这样,Apache 就会在指定目录下查找并执行 `.htaccess` 文件。 3. **创建或编辑 `.htaccess` 文件**: 在你的 ThinkPHP 项目根目录下(即 `index.php` 所在的目录)创建或编辑 `.htaccess` 文件,加入以下代码: ``` <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> ``` 这段代码会将所有请求重定向到 `index.php`,同时保留原有的路径信息。 4. **配置 ThinkPHP 项目**: 打开项目配置文件 `Conf/config.php`,设置 `URL_MODEL` 为 2,以启用 Rewrite 模式: ```php 'URL_MODEL' => 2, ``` 这样,ThinkPHP 将识别由 `.htaccess` 重写的 URL。 5. **重启 Apache 服务器**: 修改完配置后,记得重启 Apache 服务器以使改动生效。 6. **测试**: 清除项目缓存,然后尝试访问新的 URL,例如 `http://127.0.0.1/html/myapp/Index/index`,如果能正常访问,那么你就成功地隐藏了 `index.php`。 通过以上步骤,我们可以让 ThinkPHP 的 URL 更加美观,提高用户体验和 SEO 效果。同时,隐藏 `index.php` 还有助于保护框架结构,减少不必要的信息暴露。在实际的项目部署中,这一步通常是必要的,因为整洁的 URL 不仅有助于用户理解,还可能提高搜索引擎的排名。































- shuangnet2014-11-13不错,正是我想要的。
- ll5065659762013-02-26介绍的很详细
- bayiwangluo2013-10-20介绍的很详细

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 综合布线系统设计方案要点.doc
- 在eclipse下开发安卓应用软件更改工程名称.doc
- 中国云计算行业投资前景分析.docx
- 大数据时代高职大学英语写作教学改革探讨.docx
- AspenPlus中常用的英语单词对照中英文.doc
- 数控编程课程设计.doc
- 小议大数据背景下企业管理会计与战略管理的结合.docx
- 【ppt模板】简约IOS风商务工作通用PPT模板.pptx
- 数控车零件工艺设计及NC编程设计.doc
- 智慧城市环境下的反洗钱分析模式浅析.docx
- 基于PLC的温度控制闭环系统.doc
- 互联网金融背景下我国商业银行面临冲击及对策.docx
- 网络安全和数据保护.pptx
- 我国计算机工程应用问题研究.docx
- 游戏开发笔记二十六DirectX各组件的介绍&第一个DirectXDemo的创建【VisualC++.doc
- 加快林业信息化建设研究.docx


