## URL重寫
可以通過URL重寫隱藏應用的入口文件`index.php`(也可以是其它的入口文件,但URL重寫通常只能設置一個入口文件),下面是相關服務器的配置參考:
### \[ Apache \]
1. `httpd.conf`配置文件中加載了`mod_rewrite.so`模塊
2. `AllowOverride None`將`None`改為`All`
3. 把下面的內容保存為`.htaccess`文件放到應用入口文件的同級目錄下
~~~
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
~~~
### \[ IIS \]
如果你的服務器環境支持`ISAPI_Rewrite`的話,可以配置`httpd.ini`文件,添加下面的內容:
~~~
RewriteRule (.*)$ /index.php?_url=/$1 [I]
~~~
### \[ Nginx \]
在Nginx低版本中,是不支持PATHINFO的,但是可以通過在`Nginx.conf`中配置轉發規則實現:
~~~
location / { // …..省略部分代碼
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?_url=/$1 last;
}
}
~~~
> 其實內部是轉發到了ThinkPHP提供的兼容URL,利用這種方式,可以解決其他不支持PATHINFO的WEB服務器環境。
如果你的應用安裝在二級目錄,`Nginx`的偽靜態方法設置如下,其中`youdomain`是所在的目錄名稱。
~~~
location /youdomain/ {
if (!-e $request_filename){
rewrite ^/youdomain/(.*)$ /youdomain/index.php?_url=/$1 last;
}
}
~~~
原來的訪問URL:
~~~
http://serverName/index.php/模塊/控制器/操作
~~~
設置后,我們可以采用下面的方式訪問:
~~~
http://serverName/模塊/控制器/操作
~~~
- 序言
- 基礎
- 安裝
- 規范
- 目錄
- 配置
- 架構
- 入口文件
- 偽靜態配置
- Facade
- 使用行為
- 路由
- 路由定義
- 控制器
- 定義控制器
- 數據庫
- 連接數據庫
- 鏈式操作
- where
- builder
- field
- limit
- page
- order
- group
- find
- select
- value
- count
- sum
- average
- maximum
- minimum
- column
- update
- insert
- delete
- begin
- rollback
- commit
- left
- right
- inner
- for_update
- shared_lock
- cache
- 構造器
- 查詢
- 添加
- 更新
- 刪除
- 模型
- 創建模型
- 自動時間戳
- 模型關聯
- 模型事件
- 數據轉換
- 軟刪除
- 視圖
- 模板
- 日志
- 調試
- 驗證
- CLI命令行
- 標準
- 命名規范
- 語法規范
- 注釋規范
- 設計模式
- 開發提示
- 數據字典
- Markdown使用文檔
- volt模板引擎
- 簡介
- 注釋
- 變量
- 過濾器
- 流程控制
- 循環語句for
- 條件判斷語句if
- 表達式及運算符
- 函數