2011-05-13 100 views
15

我想要更新網站上的所有頁面以使用包含頁腳和頁眉的頁面。所以我必須將很多.html頁面改爲.php。將所有.html擴展名重定向到.php

所以我正在尋找一種方式來重定向所有以.html結尾的網頁到相同的網址但以.php結尾。

回答

29
RewriteEngine On 
RewriteRule ^(.*)\.html$ $1.php [L] 

如果你想要做一個重定向,而不是僅僅重寫修改[L][L,R]

+0

我去了RewriteRule ^(。*)\。html $ $ 1.php [R],因爲L標誌似乎有一些其他規則的問題。謝謝您的幫助! – Max 2011-05-13 10:31:51

+3

L標誌防止是'停止'標誌。它後面的任何規則都不會執行http://httpd.apache.org/docs/2.2/rewrite/flags.html – roberthuttinger 2012-11-05 19:47:07

+1

在Windows 8.1和XAMPP 1.8.3下,這不適用於我。我結束了使用:「RewriteRule ^(。*)\。html $ /$1.php [L]」。請注意,唯一的補充是在$ 1.php部分之前。乾杯。 – 2015-07-23 09:23:33

7

你可以做一個更簡單的方法,讓你的所有HTML文件由被處理爲PHP文件添加以下行到您的.htaccess

AddHandler application/x-httpd-php .php .html 
+0

原始的方法,但你應該提到這個解決方案增加了一些開銷,因爲它迫使PHP解析任何請求(即使是靜態的),這是非常非常簡單,可能會減慢你的性能。 – Defrag 2017-09-27 14:34:25

5

mod_rewrite來救援!

RewriteEngine On 
RewriteRule ^(.+)\.html$ $1.php 
1

在Apache的httpd.conf文件,你可以添加

AddType application/x-httpd-php .html 

使.html文件經過PHP解析器他們提供給用戶之前。您也可以將此指令添加到.htaccess文件中。第二種方法可能無法使用,具體取決於主機的設置方式。

-1

我看到「Add * application/x-httpd-php .html」會強制簡單的.html頁面類型被PHP預處理。

但是我想知道是否有人能解釋爲什麼wewals的「AddType」會比Jordonias的「AddHandler」更好?

根據討論here他們都似乎工作正常,在開銷略有差異。

所以我想我的一個大問題是這樣的:考慮到維護搜索引擎排名,將靜態HTML頁面轉換爲PHP平臺並將現有的* .html鏈接保持「實時」的最佳選擇是什麼?

謝謝!

0

請注意,AddType命令將處理您現有的html文件爲php。如果你想要用新的php文件替換現有的html文件,你需要使用重寫規則。

相關問題