最近基于thinkphp开发了个导购网站,现在有时间,将遇到的伪静态问题整理下,与大家分享。
1.设置URL伪静态
在config.ini.php中设置,如果只想前台URL伪静态,那么只在前台的config.php文件中设置就可以,如下:

'URL_MODEL'=>2,
'URL_HTML_SUFFIX' =>'.html',

这样就可以将原来如:
改动前:http://www.ipbia.com/index.php?m=index&a=index
改动后:http://www.ipbia.com/index.php/Index/index.html
其中'URL_MODEL'=>2设置url的方式,'URL_HTML_SUFFIX' =>'.html'设置后缀。

2.将index.php隐藏。
官网提供了比较详细的linux下的配置方式,参考官网就可以,我这边主要
提供IIS下面的伪静态配置,先直接给出两种环境下的配置。
*支持.htaccess文件的配置如下
创建一个.htaccess文件,内容为:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

保存后放到网站的根目录下就可以。

*IIS下的配置如下
创建一个web.config,内容为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer> 
<rewrite>
<rules>
<rule name="rule 3S" stopProcessing="true">
<match url="^(.*)$" />
<conditi>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditi>
<action type="Rewrite" url="/index.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

同理保存放到网站的根目录下就可以,这两个环境的路由规则是一样的,因此实现的功能效果也是一样的。
改动前地址::http://www.ipbia.com/index.php/Index/index.html
改动后地址:http://www.ipbia.com/Index/index.html

3.URL地址简化
如果觉得我们以上的伪静态地址路径层次够深,想直接在根目录下的地址如:
http://www.ipbia.com/index_index.html
对搜索引擎更友好,那么可以在配置文件中设置:

'URL_PATHINFO_DEPR' => '_',

这样就可以简化URL的层级。
改动前地址:http://www.ipbia.com/Index/index.html
改动后地址:http://www.ipbia.com/Index_index.html

4.排除CSS、png等资源文件
我们设置完伪静态后可能,在访问页面的时候可能会出现部分css、图片等无法加载 的问题,那么我们可以设置路由规则,排除指定的文件类型,这样就不会受影响。
规则如下,由于.htaccess的排除规则网上很多,这里不再详述,基于IIS下的资料 比较少,目前提供IIS下的配置内容 。

<rule name="rule 2S" stopProcessing="true">
<match url="(.*\.(js|ico|gif|jpg|png|flv|swf|css))$" />
<action type="Rewrite" url="//{R:1}" />
</rule>

5.设置绝对路径.
如果以上方法还未完全解决路径问题,那么您的资源文件的路径最好设置为绝对路径,可以以开头。

综合以上的几个步骤,网站的伪静态工作,应该可以完美解决了,今天就写到这了,希望对大家有用。

作者:拍喜欢 www.ipbia.com 转载请标明来源,谢谢。

SEO之基于thinkphp的URL伪静态的更多相关文章

  1. (转)nginx下基于ThinkPHP框架的网站url重写

    nginx下基于ThinkPHP框架的网站url重写nginx下的基于thinkphp的应用的url重写,需了解thinkphp的各种url格式参数的处理逻辑以及nginx重写的原理.简单点说,无论哪 ...

  2. ThinkPHP的URL重写+路由+伪静态,实现SEO效果。

    1.URL重写,隐藏网址中的Index.php. ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好.但 ThinkPHP提供了各种机制来定制需要的 URL 格式 ...

  3. ThinkPHP - URL - 伪静态 - 路由 - 重写

    URL: 一.URL规则 1.默认是区分大小写,可以修改(配置文件)为不区分大小写. 2. //修改URL大小写问题 'URL_CASE_INSENSITIVE' =>true, 如果模块名为 ...

  4. thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)

    原文:thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成(十五) 本章节:详细介绍thinkphp URL规则.URL伪静态.URL路由.URL重写.URL生成 一.URL ...

  5. TP3.2设置URL伪静态满足更好的SEO效果

    URL伪静态通常是为了满足更好的SEO效果,ThinkPHP支持伪静态URL设置,可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行. ...

  6. thinkphp之url的seo优化

    1.网站url做seo优化的原因 SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”.SEO是指通过对网站进行站内优化(网站结构调整.网站内容建设 ...

  7. ThinkPHP下隐藏index.php以及URL伪静态

    第一种方法: 设置url的重写模式(默认模式是1) 'URL_MODEL' => 2, // URL访问模式,可选参数0.1.2.3,代表以下四种模式: 第二种方法:  使用Apache来进行设 ...

  8. ThinkPHP URL伪静态、路由规则、重写、生成

    一.URL规则    1.默认是区分大小写的     2.如果我们不想区分大小写可以改配置文件        'URL_CASE_INSENSITIVE'=>true,//url不区分大小写   ...

  9. thinkphp如何实现伪静态

    去掉 URL 中的 index.php ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 ...

随机推荐

  1. 机器学习(6): 层次聚类 hierarchical clustering

    假设有N个待聚类的样本,对于层次聚类来说,步骤:        1.(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度:        2.寻找各个类之间最近的两个类, ...

  2. python3 functools partial 用于函数的包装器详解

    一.partial 的作用: partial 用于对一个已有函数进行包装,达到功能的定制的目的. 二.例子: 假设我们要完成两个功能,第一个功能是完成两个数相加,第二个功能是给一个自增一下 1.传统方 ...

  3. js innerHTML 改变div内容的方法

    永远不知道你可以改变的内容,一个HTML元素?也许你要取代的文字段落中,以反映什么访客选定刚刚从下拉框中.通过操纵一个元素的innerHtml您可以变更您的文本和HTML多达你喜欢.改变文字inner ...

  4. 如何对多个文件进行MODELSIM仿真? (由于是一个很大的项目,不可能把所有MODULE都放在一个文件里。 如何在ModelSim中对多个.V文件进行仿真?)

    可以将所有要编译的所有文件的名字做一个list.新建一个文本文档,重命名为vflist vflist内容例子如下(src为文件夹):src/base_addr_chk.vsrc/config_mux. ...

  5. [na]win7系统安装在t450s

    电脑配置 电脑型号 联想 ThinkPad T450s 笔记本电脑(最近买了个ngff口的128g的固态ssd) 操作系统 Windows 旗舰版 64位 主显卡 集成显卡 IE浏览器 版本号 8.0 ...

  6. linux命令(31):more

    一.more命令 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 ...

  7. centos 7 中的 systemd

    systemd的服务管理程序 systemctl是最主要的工具.它融合 service 和chkconfig的功能于一体.你可以使用它永久性或只在当前会话中启用/禁用服务. 下面命令用于列出正在运行的 ...

  8. 微信支付V3版本的那些事

    最近在接入微信支付这块功能,博客园也有很多博友发表了支付的各种吐槽和解决之道,基于那些经验分享之上,我也来说说我的填坑之路. 1:准备工作,首先去申请注册一个公众号——服务号,然后将微信支付功能开通, ...

  9. Java web项目中java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    原来是tomcat找不到MYSQL JAR包的问题.后来又把mysql-connector-java-5.1.7-bin.jar导入到tomcat的lib目录下面就ok了,嘿…… 在java项目中,只 ...

  10. 配置Tomcat的server.xml以适应web-content文件系统的位置改变

    刚才把写的一对jsp.html文件夹改变了位置,然后测试的时候出现了404 后来思考,应该去重新配置tomcat的server.xml文件,修改虚拟路径对应的文件系统路径,修改为当前对应的文件系统路径 ...