2011-01-14 117 views
40

我需要將所有.html文件作爲.php文件運行,並且我沒有時間在明天的演示之前更改所有鏈接。有沒有辦法用我的Apache服務器「破解」這個?使用.htaccess將所有.html頁面作爲.php文件運行?

+2

雖然這不是直接回答你的問題,但使用`sed`或任何好的IDE都可以讓你在整個目錄/項目中找到並替換。另外,您可以在Linux上輕鬆批量重命名文件。 – coreyward 2011-01-14 01:43:04

+0

是的,但如果您使用sed重命名文件,您可能會收到許多斷開的鏈接。當然,您也可以嘗試更改您網站上的所有鏈接,但也有來自整個互聯網的可能指向您網站的鏈接。 – 2011-01-14 02:26:04

回答

56

你的網站的根目錄下創建一個.htaccess文件並添加以下行:

[Apache2的@ Ubuntu的/ Debian的:使用此指令]

AddType application/x-httpd-php .html .htm 

或者,從以下評論:

AddType application/x-httpd-php5 .html .htm 

如果您正在運行PHP,CGI(可能並非如此),則應該寫:

AddHandler application/x-httpd-php .html .htm 
+8

我不得不在該類型的末尾添加`5`來使其工作,即`AddType應用程序/ x-httpd-php5 .html .htm`(運行PHP 5.3的CentOS) – melat0nin 2014-04-09 09:17:45

2

在這裏把這個在你的.htaccess

AddType application/x-httpd-php .php .htm .html 

更多信息這個page

+0

爲什麼RemoveHandler? – 2011-01-14 01:40:42

+0

好吧,再次檢查我的代碼。 – andrewk 2011-01-14 02:03:22

+0

ok .. RemoveHandler可能不是必需的 – andrewk 2011-01-14 02:04:01

5

對於任何人那裏仍然有問題,

試試這個(我的主機是從Godaddy,這是唯一在我所有的答案中爲我工作的東西。

AddHandler x-httpd-php5-cgi .html 
8

在我的GoDaddy的服務器下面的代碼工作

Options +ExecCGI 
AddType application/x-httpd-php .php .html 
AddHandler x-httpd-php5 .php .html 
3

我覺得這是對HTML和HTM網頁運行PHP腳本的最佳方式:

AddType application/x-httpd-php5 .html .htm 
3

通常你應該添加:

Options +ExecCGI 
AddType application/x-httpd-php .php .html 
AddHandler x-httpd-php5 .php .html 

Howeve r代表GoDaddy的共享主機(PHP-CGI),您還需要添加這些行:

AddHandler fcgid-script .html 
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html 

來源:Parse HTML As PHP Using HTACCESS File On Godaddy

1

使用@馬克 - 弗朗索瓦辦法火狐提示我下載HTML文件

最後爲我工作(同時使用)以下:

AddType application/x-httpd-php .htm .html AddHandler x-httpd-php .htm .html

2

您也可以使用H或T標誌的mod_rewrite強制所有。HTML文件由PHP處理程序解析:

使用H(處理器)標誌:

RewriteEngine on 

RewriteRule \.(html|htm)$ - [H=application/x-httpd-php5] 

使用T(類型)標誌:

RewriteEngine on 

RewriteRule \.(html|htm)$ - [T=application/x-httpd-php5] 

或者你也可以將規則添加更多的擴展由管道分離的模式|要由PHP處理程序解析

例如:

RewriteRule \.(html|htm|txt|foo)$ - [T=application/x-httpd-php5] 

上面的例子將改變與的.html結尾的文件的MIME類型,的.htm.TXT.foo to php。

注:在一些服務器上,你將不得不改變PHP5PHP得到這個例子中處理字符串的工作:

更改它

[T=application/x-httpd-php5] 

[T=application/x-httpd-php] 
5

您需要將以下行添加到您的Apache配置文件中:

AddType application/x-httpd-php .htm .html 

您還需要其他兩件事情:

  1. 允許Overridding

    your_site.conf文件(例如,在我的情況/etc/apache2/mods-available)下,加上下面幾行:

    <Directory "<path_to_your_html_dir(in my case: /var/www/html)>"> 
        AllowOverride All 
    </Directory> 
    
  2. 啓用重寫國防部

    運行這個命令你的機器上:

    sudo a2enmod rewrite 
    

    經過任何的這些步驟,你應該重新啓動apache:

    sudo service apache2 restart 
    
-1
AddHandler application/x-httpd-php .php .html .htm 
// or 
AddType application/x-httpd-php .php .htm .html 
相關問題