将处理程序添加到htaccess会导致文件下载,删除AddHandler指令会导致内部服务器错误


Adding Handler to htaccess causes file to download, removing Add Handler directive causes internal server error

我一直在努力弄清楚目录的htaccess文件需要什么指令。为了提供一点背景知识,我一直在摆弄AddType和AddHandler,试图让html文件在其中运行php。我添加了如下指令:

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

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

这不起作用,所以我也尝试添加处理程序:

    AddHandler x-httpd-php .php .html

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

这仍然没有给我想要的,所以我尝试了很多组合,比如:

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

我甚至尝试了与SetHandler 的组合

   AddType application/x-httpd-php .php .html
   AddHandler php-script .php .html
   SetHandler application/x-httpd-php .php html

我尝试了在网上找到的AddType和AddHandler的各种组合。

!=====这很重要====!我意识到让php运行你的html文件,这样你就可以在html中运行php,这不是一个好的做法。我不再试图那样做了。我在上面发布这一部分的唯一原因是让你了解我改变的一些事情。这些更改是对位于根目录上方的htaccess文件进行的。!==========================!

现在我不再尝试在html文件中运行php,我从htaccess文件中清除了AddType、AddHandler和SetHandler指令。但现在我在尝试运行php文件时遇到了一个内部服务器错误。

所以我试着把一些东西放回去。如果我有一个句柄,浏览器现在下载php而不是运行它

我应该注意,在我更改的目录下运行的任何php都可以正常工作。但是,该目录或该目录的子目录中的所有内容在php文件方面都有同样的问题。

我已经尝试删除该目录中的htaccess文件,但这不起作用,我得到了一个内部错误。

如果禁用"覆盖",则会出现内部错误。

我改变的东西是坚持在那个目录中,我想知道如何使用

a。把它关掉b.将正确的处理程序添加到htaccess文件中,以便php文件再次运行(就像它们在服务器的其他部分上一样)

我确实遇到了完全相同的问题,所以我删除了.htaccess的所有内容,并开始只使用处理程序进行尝试,直到我发现为止。我的本地.htaccess副本有以下SetHandler:

AddHandler x-httpd-php5-3 .php

在我的情况下,它在更改为后工作

AddHandler application/x-httpd-php5 .php

整个技巧似乎只是处理程序,我在两个不同配置的服务器上尝试了这个解决方案,在这两种情况下,只需更改AddHandler就可以了。如果这不适用于您,请尝试使用不同的php处理程序。

希望能有所帮助。

我刚刚意识到,在解决问题后,我没有回答这个问题。如果有人遇到类似的问题并正在阅读:请检查所有关联文件夹的权限。我记不清具体情况了,但其中一个目录(我相信是htaccess目录)的权限在更改了一些内容并将其更改回后仍然存在。