我需要将所有.html文件作为.php文件运行,我没有时间在明天演示之前更改所有链接。有没有办法用我的Apache服务器“破解”这个?
答案 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)
答案 4 :(得分:5)
您需要将以下行添加到Apache配置文件中:
AddType application/x-httpd-php .htm .html
您还需要另外两件事:
允许覆盖
在your_site.conf
文件中(例如,在我的情况下在/etc/apache2/mods-available
下),添加以下行:
<Directory "<path_to_your_html_dir(in my case: /var/www/html)>">
AllowOverride All
</Directory>
启用重写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
答案 7 :(得分:3)
这是所有其他正确答案的版本:
如果您无法找到正确的处理程序,只需创建一个包含以下内容的.php文件:
<?php echo $_SERVER['REDIRECT_HANDLER']; ?>
并在浏览器中运行/打开此文件。
在.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)
答案 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