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

IIS 環境下 PHP 偽靜態配置:httpd.ini 規則撰寫指南

     編輯:PHP 綜合知識

Windows 主機 IIS 6/7 常使用 ISAPI_Rewrite (httpd.ini) 實現 URL 重寫,而非 Apache 的 .htaccess。本文說明 httpd.ini 基本語法與常見規則範例。

httpd.ini 基本結構

[ISAPI_Rewrite]
# 3600 = 1 hour
# CacheClockRate 3600
RepeatLimit 32

# 保護配置檔
RewriteRule ^/httpd(?:\.ini|\.parse\.errors).* [F,I,O]

# 重寫規則
RewriteRule /index.html /index.php
RewriteRule /new-([0-9]+).html$ /newxx\.php\?uid=$1

規則解析

規則說明
RewriteRule /index.html /index.php將 `/index.html` 內部重寫至 `/index.php`,瀏覽器網址列保持 `.html`
RewriteRule /new-([0-9]+).html$ /newxx\.php\?uid=$1捕獲數字 ID,重寫至動態頁帶參數。`$1` 為第一個捕獲組

關鍵語法

  • RewriteRule 格式:`RewriteRule 模式 目標 [標誌]`;
  • 模式支援正則表達式(PCRE 子集);
  • 目標中 `$N` 反向引用捕獲組;
  • 常用標誌:[L] 最後一條、[I] 忽略大小寫、[O] 允許覆蓋、[F] 禁止存取 (403);
  • 路徑以 `/` 開頭代表網站根目錄。

常見場景範例

# 靜態化文章頁
RewriteRule /article-([0-9]+).html$ /article.php?id=$1

# 分頁
RewriteRule /list-([0-9]+)-([0-9]+).html$ /list.php?cat=$1&page=$2

# 目錄結構模擬
RewriteRule /category/([a-z0-9-]+)/$ /category.php?slug=$1

# 強制 www
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]

# 強制 HTTPS (ISAPI_Rewrite 3.x)
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

部署注意

  1. httpd.ini 放置於網站根目錄或 ISAPI_Rewrite 安裝目錄;
  2. 修改後需重啟 IIS 或回收應用程式集區生效;
  3. 虛擬主機用戶通常無權修改 ISAPI_Rewrite 全域配置,需確認主機商支援自訂 httpd.ini;
  4. IIS 7+ 建議改用原生 web.config + URL Rewrite Module,功能更強、效能更好。

掌握 httpd.ini 規則,即可在 IIS 環境實現靈活的 URL 靜態化與重導向。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved