使用.htaccess使所有.html页面以.php文件的形式运行?

时间:2011-01-14 01:33:56

标签: php html apache .htaccess

我需要将所有.html文件作为.php文件运行,我没有时间在明天演示之前更改所有链接。有没有办法用我的Apache服务器“破解”这个?

16 个答案:

答案 0 :(得分:58)

在您网站的根目录下创建.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 

答案 1 :(得分:10)

在我的Godaddy服务器中,以下代码有效

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

答案 2 :(得分:6)

您也可以使用mod_rewrite的H或T标志强制所有.html文件由php处理程序解析:

使用H(处理程序)标志:

 RewriteEngine on

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

使用T(Type)标志:

 RewriteEngine on

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

或者您可以添加更多扩展名由您希望由php处理程序解析的管道 | 分隔的规则模式

前:

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

上面的示例将更改以 .html .htm .txt 结尾的文件的mime类型。 foo 到php。

注意:在某些服务器上,您必须将 php5 更改为 php 才能使此示例在处理程序字符串中起作用:

改变它

[T=application/x-httpd-php5]

[T=application/x-httpd-php]

答案 3 :(得分:5)

对于那些仍有问题的人,

试试这个(我的托管来自Godaddy,这是我在所有答案中唯一有用的东西。

AddHandler x-httpd-php5-cgi .html

答案 4 :(得分:5)

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

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

您还需要另外两件事:

  1. 允许覆盖

    your_site.conf文件中(例如,在我的情况下在/etc/apache2/mods-available下),添加以下行:

    <Directory "<path_to_your_html_dir(in my case: /var/www/html)>">
        AllowOverride All
    </Directory>
    
  2. 启用重写Mod

    在您的计算机上运行此命令:

    sudo a2enmod rewrite 
    

    执行上述任何步骤后,您应该重新启动apache:

    sudo service apache2 restart
    

答案 5 :(得分:4)

我认为这是在html和htm页面上运行php脚本的最佳方式:

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

答案 6 :(得分:4)

通常你应该添加:

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

但是对于GoDaddy共享主机(php-cgi),您还需要添加这些行:

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

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

答案 7 :(得分:3)

这是所有其他正确答案的版本:

如果您无法找到正确的处理程序,只需创建一个包含以下内容的.php文件:

<?php echo $_SERVER['REDIRECT_HANDLER']; ?>

并在浏览器中运行/打开此文件。

Output from the php code, copy this output

在.htaccess文件中使用此输出

在您网站的根目录(通常是名为public_html的文件夹或Linux服务器上的htdocs)创建.htaccess文件并添加以下行:

AddType [[THE OUTPUT FROM ABOVE FILE]] .html .htm

实施例

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

重要提示:

如果您看到空白页或Notice: Undefined index: REDIRECT_HANDLER

.htaccess

中尝试默认设置
AddHandler application/x-httpd-php .html

答案 8 :(得分:2)

这里把它放在你的.htaccess

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

有关此page

的更多信息

答案 9 :(得分:1)

使用@ Marc-François方法Firefox提示我下载html文件

最后,以下内容对我有用(使用两者):

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

答案 10 :(得分:1)

将.html文件作为php运行时,我的.htaccess文件突然停止工作。

Godaddy的支持让我将其更改为:

AddHandler application/x-httpd-lsphp .html

答案 11 :(得分:0)

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

答案 12 :(得分:0)

我正在使用我的Raspberry Pi 3中运行的PHP7.1。

在我最后添加的文件/etc/apache2/mods-enabled/php7.1.conf中:

AddType application/x-httpd-php .html .htm .png .jpg .gif

答案 13 :(得分:0)

Dreamhost Servers上,您可以参考this page,即在撰写本文时,您可以将带有FastCGI的php 7.2用于以下内容:

AddHandler fcgid-script .html
FcgidWrapper "/dh/cgi-system/php72.cgi" .html

或者如果您使用的是php5 cgi(而非FastCGI):

AddHandler php5-cgi .html

答案 14 :(得分:0)

这里发布的答案都没有对我有用(在1and1 / ionos新鲜服务器上)。 这个做了:

AddHandler x-mapp-php5 .html

还要检查您的apache2.conf(/etc/apache2/apache2.conf)是否包含AllowOverride All作为您网站的目录(否则,将不会处理您的htaccess)。例如:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

答案 15 :(得分:0)

首先,请阅读:https://httpd.apache.org/docs/current/howto/htaccess.html#when

然后在这里阅读我的信息:https://stackoverflow.com/a/59868481/10664600

sudo vim /etc/httpd/conf/httpd.conf