设为首页 加入收藏

TOP

ThinkPHP的URL重写+路由+伪静态,实现SEO效果。(一)
2017-10-10 12:01:22 】 浏览:9747
Tags:ThinkPHP URL 重写 路由 静态 实现 SEO 效果

1、URL重写,隐藏网址中的Index.php。

 

ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好。但 ThinkPHP提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的URL 地址来。

.htaccess文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。我们可以利用 .htaccess 文件的Rewrite 规则来隐藏掉 ThinkPHP URL 中的 index.php 文件(即入口文件),这也是 ThinkPHP URL伪静态的第一步。

例如原来的 URL 为:

http://www.baidu.com/index.php/Home/Index/index/id/1

去掉 index.php 之后变为:

http://www.baidu.com/Home/Index/index/id/1

如此一来,就变成了 http://网页地址/应用模块名称/操作名称[/变量参数] 的常见 URL 格式。

更改 Apache httpd.conf 配置文件

一、加载了 mod_rewrite.so

确认加载了 mod_rewrite.so 模块(将如下配置前的 # 号去掉):

LoadModule rewrite_module modules/mod_rewrite.so

二、更改 AllowOverride 配置

更改需要读取 .htaccess 文件的目录,将原来的目录注释掉:

#<Directory ”C:/Program Files/ApacheGroup/Apache2/htdocs”>

<Directory E:/html/myapp>

更改 AllowOverride None 为 AllowOverride FileInfo Options ,

更改后的配置如下所示:

#<Directory ”C:/Program Files/ApacheGroup/Apache2/htdocs”>

<DirectoryE:/html/myapp>

AllowOverride FileInfoOptions

</Directory>

.htaccess 是基于目录来控制的,<DirectoryE:/html/myapp> 该句即表示需要读取 .htaccess 文件的目录,要根据实际具体Apache 的解析目录来配置。虚拟主机如果提供 .htaccess 控制,一般都已经配置好了。

三、添加 .htaccess 文件 Rewrite 规则

在需要隐藏 index.php 的目录下创建 .htaccess文件,并写入如下规则代码:

<IfModulemod_rewrite.c>

RewriteEngine on

#不显示index.php

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

</IfModule>

四、更改项目配置文件

编辑项目配置文件 Conf/config.php ,将 URL 模式配置为 2(Rewrite模式):

‘URL_MODEL’=>2,

保存各配置文件后,重启 Apache 服务器并删除 Runtime 目录下的项目缓存文件,在浏览器访问隐藏index.php 后的地址测试是否成功:

http://www.baidu.com/Home/Index/index/id/1

如果访问成功,那么利用 Apache .htaccess 文件的 Rewrite 规则隐藏 index.php入口文件的配置就成功了。

 

 2.如果只有Home目录,没有Admin目录,还可以把Home目录隐藏。在入口文件index.php中添加一行

define('BIND_MODULE','Home');

URL变成了这样

http://www.baidu.com/Index/index/id/1

 

3.减少网址的层级,用-取代/。

在common下配置文件中加入下面的代码

'URL_PATHINFO_DEPR'=>'-',

 

保存各配置文件后,重启 Apache 服务器并删除 Runtime 目录下的项目缓存文件,地址是否成功变成两级:

 

http://www.baidu.com/Index-index-id-1

 

 

4、伪静态,给网址加上后缀.html

ThinkPHP 支持伪静态 URL 设置,可以设置需要的 URL 后缀。编辑项目配置文件 Conf/config.php ,将 
URL_HTML_SUFFIX 参数配置如下:


'URL_HTML_SUFFIX' => '.html',



删除 Runtime 目录下的项目缓存文件使配置生效后,在浏览器访问如下地址,效果一样:

http://www.baidu.com/Index-index-id-1
http://www.baidu.com/Index-index-id-1.html

在参数配置中,也可以配置其他任何需要的后缀,注意后缀设置中包括 . 符号。
设置了伪静态后,为了保持各处 URL 一致,推荐使用 U 方法在模板里面自动生成 URL,具体参见《ThinkPHP U方法自动生成URL》。

提示:
ThinkPHP 伪静态有一个让人容易误解的地方:以为配置好伪静态之后,系统会自动生成如 xxx.html这类的网址。实际情况不是这样的,而是如上文所说,配置伪静态之后,是否有 .html 这类后

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇未知 下一篇PHP图形操作之生成图像验证码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目