Home  >  Article  >  Backend Development  >  thinkphp的伪静态有关问题

thinkphp的伪静态有关问题

WBOY
WBOYOriginal
2016-06-13 11:15:26832browse

thinkphp的伪静态问题
高手些,请教一个问题:thinkphp中伪静态,设置后,怎么没有自己改变url地址,比如访问127.0.0.1/Index/index/id/12它没有变成127.0.0.1/Index/index/12.html  说师要开启url重写,我开启后还是没有效果(除了可以不加index.php),是不是要写伪静态规则? 这个伪静态规则咋个写?是不是在.htaccess文件中写?


------解决方案--------------------
这个应该是通过appach 或nginx来配吧,
------解决方案--------------------
一、如果你用pathinfo的话,127.0.0.1/Index/index/id/12应该是访问Index模块的index方法,传入参数id,值为12。

然后如果你使用了$this->display();  // 很久没用有点忘了。。。

它会调用Tpl/Index/index.html模板进行解析输出(你可以往模板里assign变量)

-------------------

二、而你所说的伪静态是在配置文件中设置了'URL_HTML_SUFFIX'=>'html'吗?

那127.0.0.1/Index/index/id/12 和 127.0.0.1/Index/index/12.html 的调用过程跟上面所说的是一样的。只不过后者更具有静态页面的URL特征。

--------------------

我不是很清楚你是否只是想实现第二点所说的那种伪静态,还是想访问“12.html”这个文件。

若是后者,把你“12.html”的文件重命名为index.html放到Tpl/Index/目录下即可。
------解决方案--------------------
可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行。
伪静态设置后,如果需要动态生成一致的URL,可以使用U方法在模板文件里面生成URL。

U('Blog/read?id=1')这个定义为例。
当前URL设置为REWRITE模式,并且设置了伪静态后缀为.html的话,同样的方法最后生成的URL地址是: 
http://serverName/Blog/read/id/1.html

------解决方案--------------------
URL_HTML_SUFFIX'=>'html'
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn