web.config 是什麼?在 Plesk / IIS 中的角色
現在不少程式會需要 開啟 Url Rewrite 功能,
Windows 虛擬主機應都有支援,以下是針對在 Plesk Obsidian 18 控制台開啟 Url Rewrite 功能操作。
補充說明:
在 Windows 虛擬主機環境中,網站通常由 IIS(Internet Information Services)負責運作,
web.config 則是 IIS 站台層級最重要的設定檔之一。
web.config 的用途不是存放資料,而是用來控制網站「如何運作」,
例如網址導向、HTTPS 行為、預設首頁、錯誤頁顯示、安全與存取限制等。
為什麼多數情況不需要另外開啟 Url Rewrite
你不需要另外開啟,
只要在網站根目錄的 web.config 中加入對應的 Url Rewrite 規則即可。
實務說明:
在多數 Plesk Obsidian 18 的 Windows 虛擬主機環境中,
IIS Rewrite 模組通常已由主機商預先啟用。
- 確認 web.config 放置在正確的網站根目錄
- 確保 XML 結構正確,標籤需成對
- 避免多層 web.config 規則互相衝突
web.config 常見功能總覽(站長實務)
在 Windows 虛擬主機與 Plesk Obsidian 18 環境中,
web.config 是控制網站行為的核心設定檔。
以下整理站長與開發者實務上最常使用、也最容易接觸到的功能項目,
並說明實際可以如何設定與應用。
1. Url Rewrite:
Url Rewrite 是 web.config 中最常被使用、也與 SEO 關聯度最高的功能,
主要用來控制網址導向與網址結構行為。
常見應用情境:
- HTTP → HTTPS 強制導向
- 301 / 302 網址轉址
- 統一 www 與非 www 網址版本
常見設定範例(HTTP → HTTPS):
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
在多數 Plesk Obsidian 18 的 Windows 虛擬主機環境中,
不需要額外開啟 Url Rewrite 功能,
只要 web.config 規則正確即可生效。
2. HTTPS 與安全設定:
HTTPS 通常會搭配 Url Rewrite 使用,
確保所有連線都透過 SSL 加密,
避免瀏覽器顯示「不安全」警告。
實務作法說明:
當網站已成功安裝 SSL 憑證後,
可透過 Rewrite 強制所有 HTTP 請求導向 HTTPS,
確保使用者只會存取安全版本的網站。
在 Plesk 中,多數 HTTPS 與 SSL 相關設定
可直接透過介面完成,
Plesk 會自動協助寫入或調整 web.config,
降低設定錯誤風險。
3. 預設首頁(Default Document):
此功能用來控制使用者進入網站目錄時,
系統優先載入的首頁檔案。
常見設定範例:
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="index.html" />
<add value="index.php" />
<add value="default.aspx" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
IIS 會依照設定順序尋找首頁檔案,
第一個存在的檔案即會成為預設首頁。
4. 錯誤頁設定(Custom Errors):
透過 web.config 可設定 404、500 等錯誤頁顯示方式,
讓使用者在發生錯誤時看到自訂頁面,
而非系統預設錯誤畫面。
常見設定範例(404):
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404"
path="/404.html"
responseMode="File" />
</httpErrors>
</system.webServer>
5. Request Filtering:
Request Filtering 是 IIS 提供的基礎防護機制之一,
可用來限制特定副檔名或請求行為,
降低惡意請求風險。
常見設定範例(限制副檔名):
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<add fileExtension=".exe" allowed="false" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
6. MIME Types:
當檔案下載或顯示異常時,
通常是因為伺服器未定義對應的 MIME Type。
常見設定範例:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
7. 資料庫連線設定:
僅適用於特定 ASP.NET / .NET 專案情境,
用來集中管理資料庫連線資訊(Connection String)。
重要觀念:
web.config 僅存放「連線設定」,
實際資料仍存在資料庫中,
並不會直接寫入 web.config。
8.開啟詳細錯誤訊息:
在 ASP.NET 網站環境中,web.config 除了設定 Url Rewrite 外,也常用來控制是否顯示「詳細錯誤訊息」。當網站發生 500 Internal Server Error 時,若僅顯示一般錯誤頁,站長或開發者往往難以判斷實際原因。透過 web.config 搭配 ASP.NET 設定開啟詳細錯誤訊息,可顯示實際錯誤來源與錯誤資訊,協助快速排查問題。
👉 若你想了解實際操作方式,可參考以下完整教學:Plesk Obsidian 18 開啟 ASP.NET 與 web.config 詳細錯誤訊息完整教學
※※Plesk 操作補充:
在實務上,許多 web.config 相關設定其實可以透過 Plesk Obsidian 介面完成,
例如 HTTPS、安全性、ASP.NET 或錯誤顯示設定等。
Plesk 會在背後協助寫入或調整 web.config,
並提供防呆機制,
可大幅降低手動編輯設定檔造成錯誤的風險。
修改 web.config 前的重要注意事項
- 修改前請先備份原始 web.config
- XML 結構錯誤容易造成 500 Internal Server Error
- 建議使用 UTF-8(無 BOM)編碼
常見問題(FAQ)
Q1.web.config 是用來存放網站資料或資料庫資料的嗎?
不是。web.config 是 IIS 與網站的設定檔,只負責控制網站行為與運作方式,並不會存放任何實際的網站資料或資料庫內容。
Q2.為什麼有人會在 web.config 裡設定資料庫連線?
在 ASP.NET 或 .NET 專案中,常會將資料庫的連線資訊(connection string)集中寫在 web.config 中,方便統一管理,但這僅是連線設定,不是資料本身。
Q3.web.config 裡的資料庫連線設定會真的把資料寫進去嗎?
不會。web.config 只提供資料庫位置與帳號資訊,實際的資料寫入、讀取與操作,都是由網站程式(如 ASP.NET、PHP)執行。
Q4.在 Plesk Obsidian 18 中需要另外開啟 Url Rewrite 功能嗎?
多數 Windows 虛擬主機環境已預先啟用 IIS Rewrite 模組,只要在網站根目錄的 web.config 中加入正確的 Rewrite 規則即可,通常不需要額外在控制台操作。
Q5.修改 web.config 後網站出現 500 錯誤該怎麼辦?
最常見原因是 XML 結構錯誤或標籤未正確關閉。建議先還原備份的 web.config,再逐步檢查語法、編碼格式是否為 UTF-8(無 BOM)。
Q6.WordPress 或 PHP 網站也會用到 web.config 來設定資料庫嗎?
一般不會。WordPress 與多數 PHP 程式的資料庫連線設定,通常寫在各自的設定檔中(例如 wp-config.php),而不是寫在 web.config。
Q7.web.config 可以用來開啟詳細錯誤訊息顯示嗎?
是的。web.config 可搭配 ASP.NET 設定來顯示「詳細錯誤訊息」,方便開發與除錯。詳細可參考完整教學範例:https://wpoki.com/?p=6025,文章示範如何在 Plesk Obsidian 18 開啟 ASP.NET 與 web.config 詳細錯誤資訊設定。
Q8.什麼情況會需要開啟詳細錯誤訊息?
在開發、除錯階段或排查伺服器錯誤時,例如網站程式出現錯誤但只顯示一般 500 頁面,開啟 web.config 詳細錯誤模式可讓你看到完整錯誤堆疊與訊息,有助於定位問題。但正式生產環境建議關閉或限制顯示範圍以避免資訊外洩。
文章來源:https://wpoki.com
GIPHY App Key not set. Please check settings