ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP能够支持windows/Unix/Liunx等服务器环境,正式版须要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库php
本文为你们讲解的是新浪SAE下ThinkPHP的URL重写部署方法,感兴趣的同窗参考下。数据库
关于ThinkPHP的URL重写,其核心点基本上都是去掉URL路径中的index.php,其他的内容和普通的伪静态没有什么区别了。apache
我想要的结果无非是去掉URL路径中的index.phpwindows
首先是配置.htaccess服务器
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>框架
由于我部署在apache上面,须要httpd.conf配置文件中找到LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#,找到AllowOverride None改成AllowOverride All。ide
如今访问localhost/product有效,可是__APP__或者__URL__或者U获取出来的路径包含有index.php,也就是为localhost/index.php,原来还有一步,须要在conf/config.php里面修改或者添加'URL_MODEL'=>2,spa
而由于我尝试部署的是基于ThinkPHP的conist企业版2.0,在config.php里居然有这么一个配置'URL_MODEL' =>C('TOKEN.false_static'),,而TOKEN.false_static的值在初始化的时候被设置为了1,因此。。。模式一直仍是1,PATHINFO模式。开发
在新浪SAE部署,不支持.htaccess,只支持其自有的配置文件config.yaml,因此要在config.yaml添加下面这段重写格式代码:部署
handle:
- rewrite: if(!is_dir() && !is_file() && path~"^(.*)$") goto "index.php/$1"
这不是我写的,是怕本身到时候用到找起来麻烦,并且的收藏夹已经爆满了,在收藏夹里找东西已经很吃力了。