【问题标题】:How to force SSL Wordpress on Google App Engine如何在 Google App Engine 上强制使用 SSL Wordpress
【发布时间】:2026-01-17 00:00:01
【问题描述】:

目前采取的步骤

来自https://cloud.google.com/appengine/docs/flexible/php/securing-custom-domains-with-ssl

  1. 我有一个自定义域。
  2. 我已验证已配置托管证书
  3. 我已自动升级到托管 SSL 证书。感谢谷歌
  4. 我创建了一个强制 SSL 的 htaccess
我的问题
  1. 运行 gcloud app deploy 后,我的网站转到 http 而不是 https

请看下面的截图

【问题讨论】:

    标签: php wordpress .htaccess google-app-engine ssl


    【解决方案1】:

    您的 wp-config.php 中的 site_url 常量是如何定义的?

    您可能还需要安装 Force SSL 或 Simple SSL 插件。并在你的 wp-config.php 中定义相应的常量。

    【讨论】:

    • 转储常量,以便查看它是否实际设置为 https
    • 如何转储常​​量?
    • var_dump($var)。或者如果你启用了错误日志,你可以做 error_log(print_r($var, 1));
    • 在我的wp-config.php 文件中我添加了define('WP_DEBUG_LOG', true);但没有显示错误。我做对了吗?
    • 看起来我必须编辑 'nginx-app'.config 页面,但它不能完美运行
    【解决方案2】:

    第一个选项是将您的网站配置为通过 HTTPS 而不是 HTTP 工作。默认情况下,WordPress 会将所有其他链接重定向到默认协议(在您的情况下为 HTTPS)。

    您可以通过 WP-Cli 进行配置。你需要的命令是:

    wp search-replace 'OLD-URL' 'NEW-URL' --precise --recurse-objects --all-tables-with-prefix
    

    您可以查看以下教程以获取更多信息:https://developer.wordpress.org/cli/commands/search-replace/

    另一个选项是在 .htaccess 中设置 301 重定向。我正在使用以下代码:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </IfModule>
    

    有关 Google 此类移动的更多信息,请访问:https://support.google.com/webmasters/answer/6033049?hl=en&ref_topic=6033084

    【讨论】:

    • 您是否按照我回复中的选项一替换了数据库中的 HTTP URL?您可以尝试在数据库中使用插件进行搜索替换,以便所有 URL 都使用 HTTPS。
    • 我做了,但是,使用 Google App Engine,我使用 localhost:8080 来启动服务器。如何更改它以便我可以在 localhost 上使用 https 并且仍然能够在 GAE 上打开应用程序?