thinkphp伪静态

admin 2019-1-2 158

原.htacess如下:
<IfModule mod_rewrite.c>
RewriteEngine on
Rewritebase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
</IfModule>

加载到iis网站(2012,UR重写)添加规则时显示如下:

最新回复 (4)
  • admin 2019-1-2
    2
    之前一个网友说能不能达到这样的效果,www.olcms.com/news/id.html我当时说不能,后来想了想是可以的,今天试了试,已经实现,把步骤整理如下:
    1.在tp的配置文件中开启伪静态和路由如下
    return array(
    //'配置项'=>'配置值'
    //url访问模式为rewrite模式
    'URL_MODEL'=>'2',
    //开启伪静态
    'URL_HTML_SUFFIX' =>'.html',
    //开启路由
    'URL_ROUTER_ON' =>true,
    //路由规则
    'URL_ROUTE_RULES'=>array(
    'news/:id' => 'News/read',
    ),
    );
    ?>
    2.其实现在已经实现伪静态和路由了,当前访问 www.olcms.com/index.php/news/1.html 等于访问 www.olcms.com/index.php/News/read/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]
    大功告成,现在就可以 www.olcms.com/news/1.html 等于访问 www.olcms.com/News/read/1.html
    最后感谢tp和亮哥的火眼金睛看出我一个错误。
  • admin 2019-1-2
    3
    默认的

    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    规则在apache fastcgi模式下会导致No input file specified.

    修改成

    RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

    就OK,地址正常重写。
  • admin 2019-1-2
    4
    apache伪静态规则如下:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/Admin/$1 [QSA,PT,L,NC]
  • admin 2019-1-2
    5


返回