Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.htaccess使所有.html页面作为.php文件运行?_Php_Html_Apache_.htaccess - Fatal编程技术网

使用.htaccess使所有.html页面作为.php文件运行?

使用.htaccess使所有.html页面作为.php文件运行?,php,html,apache,.htaccess,Php,Html,Apache,.htaccess,我需要以.php文件的形式运行所有.html文件,在明天的演示之前,我没有时间更改所有链接。有没有办法用我的Apache服务器破解这个问题?这里把这个放到你的.htaccess中 AddType application/x-httpd-php .php .htm .html 有关此的详细信息在网站的根目录下创建一个.htaccess文件,并添加以下行: AddType [[THE OUTPUT FROM ABOVE FILE]] .html .htm [Apache2@Ubuntu/Debi

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

这里把这个放到你的.htaccess中

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

有关此的详细信息

在网站的根目录下创建一个.htaccess文件,并添加以下行:

AddType [[THE OUTPUT FROM ABOVE FILE]] .html .htm
[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 

对于那些仍然有麻烦的人

试试这个,我的主机来自这里,这是所有答案中唯一对我有用的

AddHandler x-httpd-php5-cgi .html

在我的Godaddy服务器中,以下代码起作用

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

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

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

通常,您应该添加:

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

来源:.

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

最后,以下两种方法都适用于我:

AddType应用程序/x-httpd-php.htm.html
AddHandler x-httpd-php.htm.html

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

使用H处理程序标志:

 RewriteEngine on

RewriteRule \.(html|htm)$ - [H=application/x-httpd-php5]
使用T型标志:

 RewriteEngine on

RewriteRule \.(html|htm)$ - [T=application/x-httpd-php5]
或者,您可以添加更多的扩展到由管道分离的规则模式,您希望php处理程序解析该规则模式

例:

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

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

改变它

[T=application/x-httpd-php5]


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

AddType application/x-httpd-php .htm .html
您还需要另外两件事:

允许覆盖

在您的_site.conf文件中,例如在我的案例中可用的/etc/apache2/mods下,添加以下行:

<Directory "<path_to_your_html_dir(in my case: /var/www/html)>">
    AllowOverride All
</Directory>
在执行这些步骤之后,您应该重新启动apache:

sudo service apache2 restart

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

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

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

AddType application/x-httpd-php70 .html .htm
重要提示: 如果看到空白页或注意:未定义索引:重定向\u处理程序

在.htaccess中尝试默认设置

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

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

在文件/etc/apache2/mods enabled/php7.1.conf中,我在末尾添加了:

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

在我的.htaccess文件中,以php的形式运行.html文件突然停止工作

Godaddy support让我将其更改为:

AddHandler application/x-httpd-lsphp .html
在上,您可以参考,在撰写本文时,您可以将以下内容用于PHP7.2和FastCGI:

AddHandler fcgid-script .html
FcgidWrapper "/dh/cgi-system/php72.cgi" .html
或者,如果您使用的是php5 cgi而不是FastCGI:

AddHandler php5-cgi .html

这里贴的答案对我都不管用

在我的例子中,一方面,问题是.conf文件/etc/apache2/sites available/default-ssl.conf或/etc/apache2/sites available/000-default.conf没有包含站点目录的AllowOverride All指令,这导致未处理.htaccess。要解决此问题,请添加:

<Directory /var/www/html/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
首先,阅读以下内容:

然后在这里阅读我的帖子:


虽然这不是对您问题的直接回答,但使用sed或任何好的IDE将允许您在整个目录/项目中查找和替换。另外,你可以在Linux上很容易地批量重命名文件。是的,但是如果你用sed重命名文件,你可能会得到很多断开的链接。当然,你也可以尝试更改网站中的所有链接,但也有来自互联网上的链接可能指向你的网站。我必须在类型末尾添加5才能使其工作,即AddType application/x-httpd-php5.html.htm CentOS运行PHP 5.3这对我不起作用。它使Firefox想要下载html文件并显示它。@LeeBlake我也有同样的问题。运气好吗?这会导致文件被downloading@AndreiKrasutski那样做了。仍在下载。这也适用于hostgator共享主机。谢谢。我用的是godaddy,这是唯一对我有用的。其他人要么不工作,要么下载html页面而不显示它!我认为提到Godaddy会抢走你的第一个位置。请使用链接解释此代码是如何工作的,不要只是给出代码,因为解释更有可能帮助未来的读者。另见。正确答案因Web服务器配置而异。在我的情况下,这也是正确的答案,我不支持GoDaddy…因此,如果您遇到问题,最好与您的web主机联系。这取决于您的主机提供商是否使用LSAPI LiteSpeed版本的PHP处理程序,然后您必须使用application/x-httpd-lsphp而不是application/x-httpd-phpPerfect!非常感谢。有没有一种方法可以用另一种方式确定这个处理程序?因为在我的例子中$\u服务器['REDIRECT\u HANDLER']返回null:答案应该包含。。答案是肯定的,不仅仅是链接som
ewhere where可以写:如果你将某个问题的答案复制粘贴到任何有人问同一个问题的地方,这里的版主会删除其中的一些,并告诉你发布到最佳答案的链接。
AddHandler application/x-httpd-lsphp .html
AddHandler fcgid-script .html
FcgidWrapper "/dh/cgi-system/php72.cgi" .html
AddHandler php5-cgi .html
<Directory /var/www/html/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
chown www-data:www-data .htaccess
sudo vim /etc/httpd/conf/httpd.conf