美文网首页
tp路由+伪静态+去掉index.php+去掉Home

tp路由+伪静态+去掉index.php+去掉Home

作者: 呦丶耍脾气 | 来源:发表于2017-07-19 14:57 被阅读73次

    之前一个网友说能不能达到这样的效果,www.olcms.com/news/id.html我当时说不能,后来想了想是可以的,今天试了试,已经实现,把步骤整理如下:

    1. 在tp的配置文件中开启伪静态和路由如下
    <?php
    return array(
    //'配置项'=>'配置值'
    //url访问模式为rewrite模式
    'URL_MODEL'=>'2',
    //开启伪静态
    'URL_HTML_SUFFIX' =>'.html',
    //开启路由
    'URL_ROUTER_ON' =>true,
    //路由规则
    'URL_ROUTE_RULES'=>array(
    'news/:id' => 'Home/News/read',
    ),
    );
    ?>
    

    此处再结合我另一篇文章,修改下U函数,这样在页面使用U生成链接就自动生效路由规则了
    http://www.jianshu.com/p/394b04a97af9

    1. 其实现在已经实现伪静态和路由了,当前访问 www.olcms.com/index.php/news/1.html 等于访问 www.olcms.com/index.php/Home/News/read/id/1.html 当然我们还少一步,没有去掉index.php,现在说说apache怎么去index.php,

    1)开启Apache rewrite moudle,然后重启apache
    2)建立.htaccess文件(windows用另存为方式),内容如下

    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    nginx配置

    在nginx站点配置,在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现(针对与这点,我遇到绑定模块出现的问题,遇到前台正常后台404的,看http://www.jianshu.com/p/299a3ab5a7cc):

    location / { // …..省略部分代码
       if (!-e $request_filename) {
       rewrite  ^(.*)$  /index.php?s=$1  last;
       break;
        }
     }
    

    大功告成,现在就可以 www.olcms.com/news/1.html 等于访问原来的www.olcms.com/index.php/Home/News/read/1.html

    本文参考:http://www.thinkphp.cn/topic/7384.html

    相关文章

      网友评论

          本文标题:tp路由+伪静态+去掉index.php+去掉Home

          本文链接:https://www.haomeiwen.com/subject/sfplkxtx.html