返回

WordPress HTTPS 迁移解决重定向过多:Nginx 和常量指南

php

使用 Nginx 和 WordPress 常量解决重定向过多问题

简介

在将 WordPress 网站从 HTTP 迁移到 HTTPS 时,你可能会遇到“重定向过多”错误。这是因为 Nginx 的重定向设置与 WordPress 配置冲突。本文将指导你如何使用 Nginx 和 WordPress 常量解决此问题。

问题陈述

当访问 wp-admin 页面时,使用 Nginx 设置的重定向与 WordPress 配置冲突,导致无限循环重定向。

解决方案

要解决此问题,需要在 Nginx 和 WordPress 配置中进行以下更改:

Nginx 配置:

  • 在 Nginx 配置文件中添加 proxy_redirect off;,以禁用对 proxy_pass 指令的自动重定向。

WordPress 配置:

  • wp-config.php 文件中添加常量 define('FORCE_SSL_ADMIN', true);,以强制 wp-admin 页面使用 HTTPS。
  • 更新 WordPress 的“站点地址(URL)”和“WordPress 地址(URL)”设置,将其更改为新的 HTTPS URL。

配置示例

Nginx 配置:

server {
    listen 443 ssl;
    server_name example.com;

    location / {
        proxy_redirect off;
        proxy_pass http://localhost:8080/;
    }
}

WordPress 配置:

define('FORCE_SSL_ADMIN', true);
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');

结论

通过进行这些更改,你可以禁用 Nginx 的自动重定向,并强制 wp-admin 页面使用 HTTPS,从而解决“重定向过多”问题。

常见问题解答

1. 更改 Nginx 配置后,我仍然收到“重定向过多”错误。

  • 检查是否已清除浏览器缓存。
  • 检查 WordPress 日志文件是否有任何错误消息。
  • 确保 Nginx 配置文件语法正确。

2. 什么是 FORCE_SSL_ADMIN 常量?

  • 此常量强制 wp-admin 页面使用 HTTPS,即使 WordPress 设置没有指定。

3. 如何检查 WordPress 配置是否正确?

  • 可以在 wp-config.php 文件中查找常量 WP_HOMEWP_SITEURL 的值。

4. 我可以更改 HTTPS URL 的端口吗?

  • 是的,但需要在 Nginx 和 WordPress 配置中更新端口号。

5. 这些更改是否会影响网站的其他部分?

  • 否,这些更改仅会影响 wp-admin 页面和网站内容的 HTTPS 访问。