5.7 URL伪静态

ThinkPHP支持伪静态URL设置,可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行。例如,我们设置'URL_HTML_SUFFIX'=>'shtml' 的话,我们可以把下面的URLhttp://serverName/Blog/read/id/1变成http://serverName/Blog/read/id/1.shtml后者更具有静态页面的URL特征,但是具有和前面的URL相同的执行效果,并且不会影响原来参数的使用。
注意:伪静态后缀设置时可以不包含后缀中的“.”。所以,下面的配置其实是等效的:'URL_HTML_SUFFIX'=>'.shtml'伪静态设置后,如果需要动态生成一致的URL,可以使用U方法在模板文件里面生成URL。
关于U方法的使用请参考后面的URL生成部分。

3.1版本开始,默认情况下,可以支持所有的静态后缀,并且会记录当前的伪静态后缀到常量__EXT__,但不会影响正常的页面访问。
例如:http://serverName/User/3.html
http://serverName/User/3.xhtml
http://serverName/User/3.xml
http://serverName/User/3.pdf
都可以正常访问,如果要获取当前的伪静态后缀,通过常量__EXT__获取即可。

如果只是希望支持配置的伪静态后缀,可以直接设置成可以支持多个后缀,例如:'URL_HTML_SUFFIX'=>'html|shmtl|xml' // 多个用 | 分割那么,当访问http://serverName/User/3.pdf的时候会报系统错误。

如果设置了多个伪静态后缀的话,使用U函数生成的URL地址中会默认使用第一个后缀,也支持指定后缀生成url地址。
关于多伪静态后缀的支持
如果你希望网站能够支持多个伪静态后缀设置,例如,希望http://serverName/Blog/read/id/1.shtml
http://serverName/Blog/read/id/1.html
http://serverName/Blog/read/id/1.xml
同时有效,可以用下面的方式进行配置:'URL_HTML_SUFFIX'=>'shtml|html|xml'配置多个伪静态后缀并不会导致自动判断后缀执行不同的方法,如果你有此类需求的话需要使用REST支持,可以参考第18张 REST支持部分。