SAE上使用URL重寫

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"

 

這不是我寫的,是怕本身到時候用到找起來麻煩,並且的收藏夾已經爆滿了,在收藏夾裏找東西已經很吃力了。

相關文章
相關標籤/搜索