可能重复:
内部服务器错误
我希望在 php 中更改我的网站的 URL,所以我为此使用 .htaccess 文件,但它显示了Internal Server Error 500。
谁能帮我解决服务器错误?
寻找您的宝贵意见。
找出导致 500 服务器错误的原因 以下是一些基本步骤,可用于找出导致错误的原因。
您会看到此错误的主要原因有 3 个:
文件或文件夹权限
[Sun Jun 05 12:03:22 2011] [error] [client 66.249.72.82] SoftException in Application.cpp:601: Directory "/home1/examplec/public_html" is writeable by group
在这种情况下,您的帐户有一个具有无效权限集的文件夹。要更正此问题,只需将权限从“777”恢复为“755”即可。虽然每个站点可能不同,但以下权限通常是正确使用的权限:
文件 - 644 CGI 脚本 - 755 目录 - 755
您可以使用位于 cPanel 的文件类别中的文件管理器、FTP 客户端或使用 SSH/Bash 中的“chmod”命令来修改权限。有关如何更改文件和文件夹权限的更多信息,请参阅我们的知识库文章设置文件和用户权限
.htaccess 中的错误代码或语法
.htaccess 可以做的事情范围很广,而且使用起来并不难,但是如果您没有正确输入语法,它可能会导致服务器 500 错误。下面列出了一些可能导致错误的常见示例。
语法未关闭
[Sun Jun 05 12:11:38 2011] [alert] [client 66.249.72.82] /home1/examplec/public_html/.htaccess: /home1/examplec/public_html/.htaccess:3: ExampleRule/Module> 未关闭。
同样,解决方案是简单地修复语法或删除它。在这种情况下,请正确关闭结尾的“”指令并将规则放在自己的行中以解决问题。
这些只是可能由错误的 .htaccess 参数引起的几个常见示例。您遇到的情况可能会有所不同,但通常错误消息的描述性足以确定其中的错误而无需进一步调查。配置不当的 php.ini ForceType
当您使用带有(或不带有)扩展名的文件时,该文件类型的正常扩展名不同,您可以在 .htaccess 文件中使用 ForceType 以使服务器清楚地知道如何处理该文件(或文件夹中的所有文件) (这适用于没有 phpsuexec 的服务器)。
一个例子:当你有一个名为 'item' 的文件(如 Nucleus 用于 FancyURL's)并希望它被服务器解析为 php 时,你在 .htaccess 文件中使用以下代码:
ForceType application/x-httpd-php
但是,由于我们的服务器使用 phpsuexec,这将导致内部服务器错误。要解决这个问题,您可以简单地使用 SetHandler 而不是 ForceType,因此您的 .htaccess 文件变为:
SetHandler application/x-httpd-php
php_value 在没有 phpsuexec 的服务器上,可以使用 .htaccess 文件中的 php_value 语句来更改 php 的设置(实际上是覆盖 php.ini 中的设置)。在带有 phpsuexec 的服务器上,这也会导致服务器错误。为了解决这个问题,您可以使用一个 php.ini 文件,该文件与您放置 .htaccess 文件的位置相同。在该 php.ini 文件中,您可以更改所有 php 值。您只需将要修改的值放入该文件中。例如,如果您想将 short_open_tag 设置为 Off,您会使用 short_open_tag?= 在您的 .htaccess 文件中关闭。使用 php.ini 文件会导致:
[PHP]
short_open_tag = Off
尝试更改所有文件和文件夹的所有权用户。然后您必须查看正确允许的适当文件夹的权限。