当使用 Nginx 为 WordPress 设置 URL 重写时,可能会遇到恼人的 404(未找到)或 403(禁止)错误。这些错误会破坏网站的访问,让用户望而却步。本文将深入探讨这些错误的潜在原因并提供逐步指南来解决它们,恢复网站的顺畅运行。
检查 Nginx 配置
第一步是检查 Nginx 配置文件,通常位于 /etc/nginx/sites-enabled/default。重点关注以下部分:
location /website/blog {
try_files $uri $uri/ /website/blog/index.php;
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_split_path_info ^(/website/blog)(/.*)$;
include fastcgi_params;
error_page 404 /404.html;
}
确保以下内容正确:
将 /var/www/html 替换为 WordPress 的根目录。
确保 FastCGI 进程在 127.0.0.1:9000 上运行。
检查 WordPress 设置
接下来,让我们检查 WordPress 的设置。
永久链接: 在 WordPress 仪表盘中导航到“设置”>“永久链接”。选择“文章名称”或“自定义结构”选项,并确保 URL 结构与希望重写为的结构相匹配。
.htaccess 文件: 该文件应位于 WordPress 根目录中,并包含以下代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
检查服务器权限
Nginx 用户需要对 WordPress 根目录和 .htaccess 文件具有读取和执行权限。
重启 Nginx
完成所有更改后,重启 Nginx 以应用它们:
sudo systemctl restart nginx
疑难解答其它错误
如果仍然遇到错误,请尝试以下操作:
检查 Nginx 错误日志: (/var/log/nginx/error.log)获取更多详细信息。
禁用插件: 禁用 WordPress 中的所有插件以排除冲突。
检查防火墙: 确保防火墙或安全软件没有阻止对 WordPress 网站的访问。
结论
通过遵循这些步骤,可以解决 WordPress 的 Nginx URL 重写问题并修复 404 和 403 错误。确保仔细检查配置,并在需要时寻求帮助,以保持 WordPress 网站平稳运行。
常见问题解答
为什么我会收到 404 错误?
Nginx 配置可能不正确,URL 结构与 WordPress 永久链接设置不匹配。
为什么我会收到 403 错误?
Nginx 用户可能没有对 WordPress 根目录和 .htaccess 文件的读取和执行权限。
如何检查 FastCGI 进程是否正在运行?
对于 PHP 7.3,运行 sudo systemctl status php7.3-fpm。对于 PHP 8.1,运行 sudo systemctl status php8.1-fpm。
为什么 .htaccess 文件很重要?
它包含 URL 重写规则,用于将用户请求重定向到 WordPress 的 index.php 文件。
重启 Nginx 后,我应该检查什么?
检查 WordPress 网站是否可以访问,并且 404 和 403 错误已消失。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505