httpd.conf 是 Apache 核心配置檔,掌握關鍵指令能精準控制存取權限、MIME 類型、虛擬主機等。本文整理常用區塊與參數說明。
| 指令 | 用途 |
|---|---|
<Directory> | 設定指定目錄及其子目錄的存取權限 |
<Files> | 針對特定檔案名稱模式設定指令 |
<Location> | 針對特定 URL 路徑設定指令 |
<VirtualHost> | 定義虛擬主機配置 |
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
| 選項 | 效果 |
|---|---|
| All | 允許所有操作(含 Indexes、ExecCGI、FollowSymLinks 等) |
| ExecCGI | 允許執行 CGI 程式 |
| FollowSymLinks | 允許追蹤符號連結 |
| Indexes | 目錄無索引檔時顯示檔案列表 |
| None | 禁止所有存取 |
# 允許所有
Order allow,deny
Allow from all
# 僅允許特定 IP
Order deny,allow
Deny from all
Allow from 192.168.1.100 10.0.0.0/8
# 拒絕特定 IP
Order allow,deny
Allow from all
Deny from 192.168.1.200
Order 邏輯: Order allow,deny 表示先評估 Allow 再評估 Deny(最後匹配生效);Order deny,allow 相反。
DefaultType text/plain:純文字為主的站點。DefaultType application/octet-stream:二進制檔案(圖片、影片、下載)為主,瀏覽器會提示下載而非直接顯示亂碼。ServerName:主機名稱(需與 DNS/hosts 一致)。DocumentRoot:網站根目錄絕對路徑。ErrorLog、CustomLog:錯誤/存取日誌路徑。LoadModule:載入模組(如 mod_rewrite, mod_ssl)。Include:引入外部配置檔(如 conf/extra/httpd-vhosts.conf)。修改 httpd.conf 後需重啟或平滑重載 Apache:
# Linux
systemctl reload httpd
# 或
apachectl graceful
# Windows
httpd -k restart
熟悉核心參數,能讓你快速排查 403/404/500 錯誤,並實現精細的存取控制與效能調優。