首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

ThinkPHP Pathinfo 模式與 URL Rewrite 配置指南

     編輯:PHP 相關知識

Pathinfo 模式原理

URL 格式:`https://domain.com/index.php/Module/Action/param1/value1/...`

  • 入口文件 `index.php` 後的路徑信息作為路由參數
  • 第一段 → 模塊/控制器,第二段 → 操作/方法,後續成對 → 參數
  • 啟用分組時依次遞推

URL Rewrite 隱藏 index.php

Apache (.htaccess)

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
  • 放置於入口文件同級目錄 (public/)
  • 需開啟 `mod_rewrite` 並 `AllowOverride All`

Nginx 配置

location / {
    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php/$1 last;
        break;
    }
}
# 或推薦 try_files
location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

ThinkPHP 配置

// config/app.php 或 config/route.php
'url_model' => 2, // 2=PATHINFO, 3=REWRITE (隱藏 index.php)
'url_html_suffix' => '', // 關閉 .html 後綴

效果對比

模式URL 示例SEO備註
普通/index.php?m=User&a=login差默認
PATHINFO/index.php/User/login良需服務器支援 pathinfo
REWRITE/User/login優需 Rewrite 配置

常見問題

  • 404:Rewrite 模塊未啟用、.htaccess 未生效、路徑錯誤
  • 參數獲取失敗:`$_SERVER['PATH_INFO']` 未正確設置 (Nginx 需 `fastcgi_param PATH_INFO $path_info;`)
  • 靜態文件 404:`!-f !-d` 判斷順序、靜態資源路徑衝突
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved