2011-01-14 64 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 
相关问题