Thinkphp3.2 伪静态以及thinphp3.2去掉index.php方法

   一般在thinkphp开发的项目中我们都需要隐藏到入口文件,那么具体需要怎么做呢。这里简单说一下。


   一, 这里我们是一apache为例。打开httpd.config,找到modules/mod_rewrite.so这一行。把前面的#去掉。这里顺便提一下关于Rewrite这模块其实是主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等功能,只有开启加载这个配置才能实现伪静态以及隐藏入口文件的作用。

   二, 还是在httpd.config中搜索AllowOverride none,AllowOverride none改为AllowOverride all。这里顺便提一嘴AllowOverride none的意思是.htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。

   三,在项目的配置文件中'URL_MODEL'=>'2',这个可以根据项目需求选择放在公共配置文件中还是单一模块的项目中。

   四,修改或者新建一个.htaccess的文件里面写入

<IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>
然后保存 重启运行环境就可以看到隐藏了index.php。而伪静态化 基本也是完成的 但是这里提一嘴,很多实用thinkphp框架的使用者可能有个毛病 就是在模板中 U方法的使用,比如给test方法传值id=1 有可能在模板文件中这么写
{:U('test')}?id=1


这么写的确可以将值传入,但是反应在浏览器上就会使www.xxxx.com/Index/text.html?id=1,那么就算是按照以上的方法设置伪静态也没有用,因为thinkphp不会将其转化为你在框架中设置的那种。所以要注意的是在模板中传值尽量使用tp手册所写的方法,刚才的传值应该为
{:U('test',array('id'=>1))}






  

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值