ThinkPHP 支持伪静态 URL 设置,可以设置需要的 URL 后缀。编辑项目配置文件 Conf/config.php ,将 URL_HTML_SUFFIX 参数配置如下:
'URL_HTML_SUFFIX' => '.shtml',
删除 Runtime 目录下的项目缓存文件使配置生效后,在浏览器访问如下地址,效果一样:
http://www.520mg.com/html/myapp/index.php/Index/index http://www.520mg.com/html/myapp/index.php/Index/index.shtml
如果隐藏了 index.php,地址则变更为:
http://www.520mg.com/html/myapp/Index/index.shtml
现在该 URL 更具静态特征和 SEO 效果,但执行效果和以前一样。
在参数配置中,也可以配置其他任何需要的后缀,注意后缀设置中包括 . 符号。
设置了伪静态后,为了保持各处 URL 一致,推荐使用 U 方法在模板里面自动生成 URL,具体参见《ThinkPHP U方法自动生成URL》。
ThinkPHP 伪静态有一个让人容易误解的地方:以为配置好伪静态之后,系统会自动生成如 xxx.shtml 这类的网址。实际情况不是这样的,而是如上文所说,配置伪静态之后,是否有 .shtml 或.html 这类后缀跟无后缀的 URL 访问效果是一样的。
因此,要是用伪静态,只能手动添加静态后缀或者使用 ThinkPHP U方法 自动生成带后缀的 URL 地址。在此,当然推荐使用 U方法 来自动生成具有伪静态地址的 URL 格式。