使用.htaccess使所有.html页面作为.php文件运行?
我需要以.php文件的形式运行所有.html文件,在明天的演示之前,我没有时间更改所有链接。有没有办法用我的Apache服务器破解这个问题?这里把这个放到你的.htaccess中使用.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
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