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

讓靜態 HTML 文件解析執行 PHP 代碼的 Apache/Nginx 配置方法

     編輯:PHP 綜合知識

Apache 方案

方法一:修改 httpd.conf(需服務器權限)

# 在 httpd.conf 或虛擬主機配置中添加
AddType application/x-httpd-php .html .htm
# 或僅針對特定目錄
<Directory "/var/www/html">
    AddHandler application/x-httpd-php .html .htm
</Directory>

方法二:.htaccess(共享主機/無 root 權限)

# 根目錄 .htaccess
AddHandler application/x-httpd-php .html .htm
# PHP 7+ 部分環境需用
AddHandler application/x-httpd-php7 .html .htm

Nginx 方案

編輯站點配置 /etc/nginx/sites-enabled/your_site.conf:

location ~ \.(html|htm)$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 或 127.0.0.1:9000
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    # 可選:禁用緩存確保即時生效
    add_header Cache-Control "no-cache, no-store, must-revalidate";
}

重載配置:nginx -t && systemctl reload nginx

安全與性能警示

⚠️ 不推薦常規項目使用:
1. 性能損耗:所有 HTML 經 PHP 解析器,靜態資源無法利用 Web 服務器高效發送。
2. 安全風險:上傳的 HTML 文件若含惡意代碼將被執行。
3. 緩存失效:CDN/瀏覽器緩存策略可能失效。

推薦替代方案

  1. 重命名為 .php:最簡單、標準、無額外配置。
  2. 模板引擎:Smarty、Blade、Twig 等,邏輯與視圖分離。
  3. 前端模板 + API:Vue/React 等 SPA 架構,HTML 純靜態,數據通過 AJAX 獲取。
  4. SSI (Server Side Includes):Nginx/Apache 原生支持 ,輕量級片段復用。

適用場景

  • 老項目遷移,大量 .html 已被搜索引擎收錄,需保持 URL 不變。
  • 極少量動態片段嵌入靜態頁(如版權年份、用戶名)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved