WordPress网站提示500内部服务器错误怎么解决?
网站500报错
问题:通过以上错误代码可知,什么是 WordPress 内部服务器错误?
内部服务器错误的正确定义不清楚或未定义。内部服务器错误或错误 500 是一般性的。当您访问网站并且您的程序向托管该网站的服务器发送请求时,就会发生这种情况。服务器接收请求,对其进行测量,然后将资源(CSS、HTML、PHP 等)与标头一起发送回。如果状态码为 200 表示一切正常,但如果状态码为 500(即名称 Error 500),则表示出现错误。该错误是由网站方面出错了。
方法一:修复损坏的 .htaccess 文件
任何配置错误.htaccess 文件可能导致 500 错误。如果您还不熟悉此文件,则应考虑阅读 .htaccess 入门指南以了解有关此文件的更多信息。
注意:.htaccess文件只在Apache环境下可用,在Nginx环境下不可用,所以如果是Nginx环境就不用考虑这个原因了。
修复它的最简单方法是备份当前的 .htaccess 文件并将其从服务器中删除。您通常可以在 WordPress 托管帐户的根目录中找到它。
请务必在删除之前下载文件。这将允许您将 .htaccess 文件上传回来而不会导致错误。
在删除 .htaccess 文件后尝试访问您的网站。如果删除文件解决了 500 错误,您可以通过访问设置 > 永久链接并单击保存更改来生成新的 .htaccess 文件。否则,只需将旧的 .htaccess 文件上传回您的服务器即可。也可以创建一个.htaccess空文件,将以下代码拷贝到新创建的.htaccess文件中,并上传到服务器的www根目录下即可。
# BEGIN WordPress
# 在“BEGIN WordPress”与“END WordPress”之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
方法二: 插件错误或不兼容
有时,由于某些不兼容或其他错误代码,您安装的插件或主题可能会导致 500 错误。修复由于这种不兼容而导致的任何错误的最佳方法是简单地禁用所有插件并查看是否仍然出现 500 错误。
如果禁用所有插件解决了您的问题,则表示其中一个插件导致了 500 错误。现在您可以开始一个一个地激活它们,看看它们中的哪一个是问题所在。激活每个插件后,继续检查您的网站是否存在 500 错误。
如果激活插件时显示 500 错误,您可以联系插件开发人员,让他们知道该问题,以便他们在下次更新时修复它或建议快速修复。
注意:如果无法访问WordPress后台,可以通过FTP等软件将wp-content/plugins中的文件下载到电脑中进行备份,然后在服务器上删除这些插件,这样所有插件都可以禁用。登录后台后,然后上传下载的插件备份。
方法三: 修复损坏的 WordPress 核心文件
损坏的 WordPress 核心文件极不可能在您的网站上导致 500 错误。但是,如果以上方法都没有为您解决错误,那么这个修复值得一试。
我们在这里尝试做的是替换名为 wp-admin 和 wp-includes 的两个目录中的核心 WordPress 文件。您不应对位于这些目录中的文件的内容进行任何更改,因为它们用于维护 WordPress 功能。有意或无意地更改那里的任何内容都可能导致 500 错误。
第一步是访问 WordPress 下载页面并获取最新版本。之后,您可以提取下载文件的内容并使用 FTP 客户端将 WordPress 安装中 wp-admin 和 wp-includes 目录中的文件替换为这些新的、未更改的副本。
方法四:内存不足
虽然很少见,但您可能会收到 500 错误,因为您的主题或插件中的某些内容正在耗尽您分配的所有内存。对此的快速解决方法是简单地增加内存限制。
打开您在第 1 部分中了解的 .htaccess 文件,并将以下行放入其中。
php_value memory_limit 512M
php_value upload_max_filesize 64M
php_value post_max_size 64M
最好将它们放在#END WordPress 之前以避免任何意外的惊喜。这应该会增加分配的内存。您可以通过转到 WordPress 管理仪表板中的工具 > 站点运行状况 > 信息 > 服务器来检查新值。
请记住,这只是一个临时的快速修复。理想的解决方案是找出内存使用量激增的确切原因,然后在插件或主题中修复该功能。否则,迟早你会再次耗尽内存。
总结:那.htaccess都有什么作用呢?
1、保护WordPress后台登录
您可以使用.htaccess文件来保护WordPress后台登录,即设置可以登录后台的IP地址。
只需将该代码复制并粘贴到.htaccess文件中即可:
- AuthUserFile /dev/null
- AuthGroupFile /dev/null
- AuthName “WordPress Admin Access Control”
- AuthType Basic
- order deny,allow
- deny from all
- # IP地址白名单 公司
- allow from xx.xx.xx.xxx
- # IP地址白名单 家里
- allow from xx.xx.xx.xxx
不要忘记用自己的IP地址替换xx值。如果您使用多个IP地址访问互联网,可以继续添加。
2、密码保护WordPress下的/wp-admin/文件夹
您可以使用.htaccess文件为您的WordPress网站下的/wp-admin/文件夹添加额外的密码保护功能。
首先,您需要生成.htpasswds文件,您可以通过使用在线.htpasswds生成器轻松创建一个。
然后,将此.htpasswds文件上传到可公开访问的Web目录或/ public_html /文件夹之外。
接下来,创建一个.htaccess文件,并将其上传到/wp-admin/目录中,然后在其中添加以下代码:
- AuthName “Admins Only”
- AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
- AuthGroupFile /dev/null
- AuthType basic
- require user putyourusernamehere
- Order allow,deny
- Allow from all
- Satisfy any
重要提示:请勿忘记用.htpasswds文件的文件路径替换AuthUserFile路径并添加您自己的用户名。
3、禁用目录浏览
许多WordPress安全专家建议禁用目录浏览。
启用目录浏览后,黑客可以查看您的站点的目录和文件结构,以查找易受攻击的文件。
要禁用您网站上的目录浏览,您需要将以下行添加到.htaccess文件中。
- Options -Indexes
4、禁用某些WordPress目录中的PHP执行
有时黑客进入WordPress网站并安装一个后门。这些后门文件通常被伪装成核心WordPress文件,并放在/wp-includes/或/wp-content/uploads/文件夹中。
改进WordPress安全性的一个更简单的方法是禁用某些WordPress目录的PHP执行。
您将需要在计算机上创建一个空白的.htaccess文件,然后将以下代码粘贴到其中。
- <Files *.php>
- deny from all
保存文件,然后将其上传到/wp-includes/或/wp-content/uploads/文件夹中。
5、保护WordPress下的wp-config.php配置文件
您的WordPress网站的目录中最重要的文件可能是根目录下的wp-config.php文件。
因为wp-config.php文件中包含有关网站数据库的链接信息,如果它被黑客拿到了,那么你的数据库就危险了。
要保护您的wp-config.php文件免受非正常的访问,只需将以下代码添加到.htaccess文件中:
- order allow,deny
- deny from all
6、通过.htaccess文件实现301重定向
如果在迫不得已的情况下,你必须要更换域名,或者改变网站的URL结构。
那么,对搜索引擎最友好的方式,就是使用301重定向:告诉您的用户一个内容已经移动到一个新的位置。
相关的.htaccess文件代码如下:
- #将/oldurl/重定向到http://www.cntworld.cn/newurl
- Redirect 301 /oldurl/ http://www.cntworld.cn/newurl
- #将/category/television/重定向到http://www.cntworld.cn/category/tv/
- Redirect 301 /category/television/ http://www.cntworld.cn/category/tv/
7、阻止可疑的IP地址访问网站
如果你发现有可疑的IP地址访问你的网站,您可以通过.htaccess文件来阻止对应的IP地址访问你的网站。
将以下代码添加到.htaccess文件中:
- order allow,deny
- deny from xxx.xxx.xx.x
- allow from all
不要忘记用要阻止的IP地址替换xx。
8、使用.htaccess设置网站图片防盗链
如果有人复制了你的网站内容,并且没有更改图片地址。
那么,在你网站之外的其他地方访问这些内容的时候,图片也会显示,但是图片是从你的服务器上下载的,并且占用你的带宽。
对于大多数小型网站来说,这不是一个大问题。
但是,此类情况出现的多了,很有可能会使您的WordPress网站出现访问速度缓慢,或者超出带宽限制。
特别是,如果您运行一个受欢迎的网站或网站上有很多照片,那么这可能会成为一个严重的问题。
您可以通过将此代码添加到.htaccess文件来实现图片防盗链功能:
- #disable hotlinking of images with forbidden or custom image option
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomian.com [NC]
- RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?baidu.com [NC]
- RewriteRule .(jpg|jpeg|png|gif)$ – [NC,F,L]
如果请求源自yourdomian.com或baidu.com,此代码仅允许显示图像。不要忘记用您自己的域名替换yourdomian.com。
9、禁止网站服务器通过未经授权的访问
由于服务器具有电源和控制权,因此保护服务器免受黑客的访问非常重要。
只需将以下代码添加到.htaccess文件中即可:
- <files ~ “^.*.(Hh[Aa])”>
- order allow,deny
- deny from all
- satisfy all
10、配置网站上传文件的大小限制
在WordPress中网站中配置上传文件的大小限制有很多不同的方法。
但是,对于使用共享虚拟主机的用户,这些方法也许不起作用。
那么,你可以尝试通过.htaccess文件来实现。
将以下代码添加到.htaccess文件中:
- php_value upload_max_filesize 64M
- php_value post_max_size 64M
- php_value max_execution_time 300
- php_value max_input_time 300
此代码只是告诉您的Web服务器使用这些值来增加上传文件的大小限制,以及在WordPress中的最大执行时间。
11、禁用通过xmlrpc.php来的请求
每个WordPress安装都附带一个名为xmlrpc.php的文件。
此文件允许第三方应用程序连接到您的WordPress网站。
大多数WordPress安全专家建议,如果您没有使用任何第三方应用程序,那么您应该禁用此功能。
有多种方法可以做到这一点,其中之一是将以下代码添加到.htaccess文件中:
- # Block WordPress xmlrpc.php requests
- order deny,allow
- deny from all
12、阻止对网站中的作者进行扫描
在暴力攻击中使用的常见技术是在WordPress站点上运行作者扫描,然后尝试破解这些用户名的密码。
您可以通过将以下代码添加到.htaccess文件来阻止此类扫描:
- # BEGIN block author scans
- RewriteEngine On
- RewriteBase /
- RewriteCond %{QUERY_STRING} (author=\d+) [NC]
- RewriteRule .* – [F]
- # END block author scans