将Handler添加到htaccess会导致文件下载,删除Add Handler指令会导致内部服务器错误

时间:2013-02-21 02:44:27

标签: php apache .htaccess

我一直试图弄清楚我的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文件,但这不起作用,我收到内部错误。

如果我关闭Override,我会收到内部错误。

我改变的是持久存在于该目录中,我想知道如何

一个。把它关掉 湾为该htaccess文件添加正确的处理程序,以便再次运行php文件(就像它们在服务器的其余部分一样)

2 个答案:

答案 0 :(得分:0)

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

AddHandler x-httpd-php5-3 .php

在我的情况下,它在将其更改为:

之后起作用
AddHandler application/x-httpd-php5 .php

似乎整个技巧只是处理程序,我在具有不同配置的两个不同服务器中尝试了这个解决方案,在这两种情况下只是改变AddHandler工作。如果这不起作用,请尝试使用不同的php处理程序。

希望它有所帮助。

答案 1 :(得分:0)

刚刚意识到我在解决问题后没有回答这个问题。如果有人遇到类似问题并且正在阅读此内容:请检查所有相关文件夹的权限。我记不起具体细节,但其中一个涉及的目录(我相信它是htaccess目录)具有在更改某些内容然后将其更改后保留的权限。