服务器未将 .html 解析为 PHP
Posted
技术标签:
【中文标题】服务器未将 .html 解析为 PHP【英文标题】:Server not parsing .html as PHP 【发布时间】:2011-09-11 19:33:47 【问题描述】:我的 .htaccess 文件中有包含的代码,但我尝试包含的 php 代码不起作用。
Options +Includes
AddType text/html .htm .html
AddHandler server-parsed .htm .html
AddType application/octet-stream .vcf
AddOutputFilterByType DEFLATE text/html text/htm text/plain text/css text/php text/javascript application/x-javascript
【问题讨论】:
【参考方案1】:从 cpanel 中打开“MultiPHP INI 编辑器” 然后启用“allow_url_include”
然后将以下行添加到您的 .htaccess 文件中:
<IfModule mod_mime.c>
AddType application/x-httpd-ea-php73 .html .php .htm
</IfModule>
Options +FollowSymlinks
重要提示:必须用你的替换php版本
【讨论】:
【参考方案2】:我被难住了 2 个小时,直到我查看 /etc/php/7.2/fpm/pool.d/www.conf
然后取消注释安全设置以强制 php 仅解析 php 并添加 .html
以便现在该行是 security.limit_extensions = .php .php3 .php4 .php5 .php7 .html
然后是 sudo service php7.2-fpm restart
并做
<head>
</head>
<body>
This should show date here:
<?php echo date('l, F jS, Y'); ?>
</body>
并保存为test.html
工作正常并显示!
【讨论】:
【参考方案3】:对于 PHP 版本 5.6.40,将 PHP 作为“Apache 服务的 FRM 应用程序”运行 (Plesk) 在 .httaccess 中添加这个
<FilesMatch "\.html$">
SetHandler php-script
</FilesMatch>
对我有用
【讨论】:
【参考方案4】:如果您想要 www.examle.com/page.php?id=123&lang=it 在 seo 中的网址,例如 www.examle.com/it/1/2/3/pagina.html 添加.htaccess
<Files it>
SetHandler php-script
</Files>
<Files ru>
SetHandler php-script
</Files>
当在 web http 根目录中创建文件“it”“ru”时,如下所示:
<?php
// www.examle.com/it
$lang="it";
include("urlrewrite.php");
?>
<?php
// www.examle.com/ru
$lang="ru";
include("urlrewrite.php");
?>
【讨论】:
【参考方案5】:AddHandler 应用程序/x-httpd-ea-php56 .html .htm
AddType application/x-httpd-ea-php56 .html .htm
这对我有用!
【讨论】:
【参考方案6】:非常重要的是,您必须将“php5”替换为您自己的确切 PHP 版本:
AddHandler application/x-httpd-php5 .html .htm
AddType application/x-httpd-php5 .html .htm
因为我已经从网络上尝试了各种方式,但是直到我在我的 CPanel 下找到一个“MultiPHP Manager”菜单点,我才发现我的确切 PHP 版本/名称/ID(或不管它叫什么)是“ea-php56”,所以我的工作代码是:
AddHandler application/x-httpd-ea-php56 .html .htm
AddType application/x-httpd-ea-php56 .html .htm
我已经浏览了一整天的论坛,cmets,但我在任何地方都没有找到这个非常重要的信息,所以如果它不工作,你可能还需要查找你的确切 PHP 版本!
【讨论】:
【参考方案7】:对于 Godaddy 服务器,它对我有用
Options +ExecCGI
AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
【讨论】:
【参考方案8】:PHP 与 SuPHP 一起运行:
<FilesMatch "\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
【讨论】:
【参考方案9】:使用 PHP 5.5 将其添加到 .htaccess 解决了我的问题:
AddType application/x-httpd-php .html
【讨论】:
【参考方案10】:我在 Plesk 中使用 GoDaddy 专用服务器。这是我必须用来让它工作的东西:
AddHandler fcgid-script .htm
FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .htm
cgi_wrapper
的实际路径参考文件:
/var/www/vhosts/yourdomain.com/conf/last_httpd.include
或/etc/httpd/conf.d/php_cgi.conf
【讨论】:
【参考方案11】:简化为 3 个步骤:
vim /etc/httpd/conf/httpd.conf
AddType application/x-httpd-php .html
service httpd restart
【讨论】:
【参考方案12】:您可能想尝试将此行添加到您的 .htaccess
文件中:
AddHandler x-mapp-php6 .html .htm
【讨论】:
虽然这可能会回答这个问题,但最好能稍微解释一下为什么会这样。【参考方案13】:如果您使用的是 Plesk 控制面板:
PHP 作为 Apache 模块运行:
<IfModule mod_php5.c>
AddHandler php5-script .php .html .htm
AddType text/html .php .html .htm
</IfModule>
PHP 作为 FastCGI 应用程序运行:
<IfModule mod_fcgid.c>
<Files ~ (\.html)>
SetHandler fcgid-script
FCGIWrapper /var/www/cgi-bin/cgi_wrapper/cgi_wrapper .html
Options +ExecCGI
allow from all
</Files>
</IfModule>
PHP 作为 CGI 应用程序运行:
<Files ~ (\.html)>
SetHandler None
AddHandler php-script .html
Options +ExecCGI
allow from all
</Files>
然后 /usr/local/psa/admin/sbin/httpdmng --reconfigure-all
http://kb.odin.com/en/115773
【讨论】:
你我的朋友是救命稻草! “PHP 正在作为 CGI 应用程序运行”给了我一个问题,因为我们从 Apache 模块更改并且我们的 PHP 版本升级了。 我可以确认 Plesk 12.5 的 FastCGI 解决方案。但要补充一点,<IfModule>
条件必须包裹在<Directory /path/to/my/vhost/root><IfModule mod_fcgid.c>...<IfModule></Directory>
【参考方案14】:
对于 godaddy 共享主机(php-cgi):
来自http://sagarnangare.com/parse-html-as-php-using-htaccess-file-on-godaddy/
AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
这是唯一对我有用的。
【讨论】:
【参考方案15】:在带有 PHP 5 的 Apache 2.2.22 (Ubuntu) 上,将这些行添加到 /etc/apache2/mods-enabled/php5.conf
<FilesMatch ".+\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
然后重启apache
sudo service apache2 restart
【讨论】:
嗯,适用于本地服务器,但我不想在主机会直接拒绝的实时服务器/共享服务器上遇到这个问题。【参考方案16】:如果您尝试运行非常旧的 PHP 代码,请确保您有
short_open_tag = On
在你的 php.ini 中
或者,甚至更好(因为不再建议对新代码使用短开放标签)仅通过以下方式启用特定虚拟主机:
php_value short_open_tag On
在 httpd.conf / .htaccess 文件中。
【讨论】:
【参考方案17】:之前被这件事难住了,如果其他人都没有工作,那么可能发生的事情是你将它作为文件读取而不是通过 apache。检查您的地址栏并确保它以 localhost、您的 ip、127.0.0.1 或您的域名开头(如果您已将其设置为直接连接到您的服务器)。
【讨论】:
【参考方案18】:如果你的服务器使用的是 PHP5,那么使用这个:
AddHandler application/x-httpd-php5 .html .htm
如果不是 PHP5 则使用
AddHandler application/x-httpd-php .html .htm
它在 CPanel 托管上对我有用。
如果您使用的是其他 linux 主机,请尝试以下操作:
<IfModule mod_mime.c>
AddType application/x-httpd-php .html .php .htm
</IfModule>
Options +FollowSymlinks
【讨论】:
【参考方案19】:不知道它是否有帮助,但是……我搜索了一个小时后的例子:
AddType application/x-httpd-php .php
LoadModule php5_module "c:/server/php5/php5apache2_2.dll"
ScriptAlias /_php/ "c:/server/php5/"
在 httpd.conf 中
没有 LoadModule 和 ScriptAlias 它根本不处理 php 并显示明文
【讨论】:
【参考方案20】:你可以试着只把这个AddType php .html .htm
放到你的htaccess 中,如果这个AddType application/x-httpd-php .html .htm
不起作用。
【讨论】:
【参考方案21】:BenG,有什么解决方案适合你吗?
这可能会有所帮助——我发现这个话题令人困惑,因为这两种说法在我的本地开发环境中都适用于我
AddHandler application/x-httpd-php .html .htm
or
AddType application/x-httpd-php .html .htm
在阅读了关于这两个指令的 apache 文档后,您似乎想在添加尚未由 apache 处理的 mime 类型时使用AddType,而当您希望 apache 以不同于其默认处理方式处理文件时使用AddHandler该文件类型的。我可能是错的,但这似乎是手册所说的。
因此,如果您希望 apache 像处理 .php 文件一样处理 .html 和 .htm,那么您将使用该指令:
AddHandler application/x-httpd-php .html .htm
你上面提到的 .htaccess 文件正在做一些事情,所以也许你可以首先验证它确实告诉 apache 处理 .htm 和 .html 文件,就好像它们是 .php 文件一样;然后转到您要使用的其他指令。
【讨论】:
【参考方案22】:试试:
AddType application/x-httpd-php .html .htm
更新 1
它可能是特定于 PHP 版本的。如果您使用的是 PHP5,请尝试:
AddType application/x-httpd-php5 .html .htm
更新 2
试试:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
或者这里还有另一种方法:
<FilesMatch "\.html$">
ForceType application/x-httpd-php
</FilesMatch>
【讨论】:
我继续尝试,当我重新加载页面时,chrome下载了一个名为“下载”的文件。前几天还在工作,所以我很难过。 我正在使用 PHP5,但是在我进行更改后,chrome 仍在尝试下载文件。我很抱歉在这里一无所知,我对在 .htaccess 中工作还很陌生。我可以提供更多信息来帮助更有效地回答问题吗? 我不是一个服务器管理员,所以我不确定为什么它不适合你。但是我在我的答案中添加了另一种方法来做到这一点。希望它有所帮助。 还是不行。感谢您的帮助,我可能只需要联系我刚刚更换的旧 webdev 以找出导致他的后端这样做的原因。RemoveHandler .html .htm AddType application/x-httpd-php5 .html .htm
为我工作【参考方案23】:
来自http://support.lunarpages.com/knowledge_bases/article/321
如何配置 Apache 来处理 .html 文件作为 suPHP 下的 PHP?你 需要删除任何以前的条目 用于将 .html 文件作为 PHP 和 在您的 .htaccess 中插入以下内容 文件:AddHandler x-httpd-php .html .htm 或者您可以手动添加 使用 Cpanel -> Apache 处理程序 -> 新:扩展名:.html .htm 处理程序: x-httpd-php 最新的 cPanel 服务器 实际上需要以下 而是:AddHandler 应用程序/x-httpd-php .html .htm 或 AddType application/x-httpd-php .html .htm 如果是第一种类型,请试试这个 不适用于文件。
【讨论】:
以上是关于服务器未将 .html 解析为 PHP的主要内容,如果未能解决你的问题,请参考以下文章
为啥告诉您的服务器将 HTML 解析为 PHP 是一个坏主意? [关闭]
HTML 表单未将值传递给 PHP (mysqli_real_escape_string)