我需要同时将我的 Wordpress 网站提供给 http://“特定域”和 https://“特定域”。我知道我可以像这样定义 wp 站点 url 和 wp 主页,
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
但在我的情况下,由于在我的域上安装 SSL 证书后 Wordpress 中出现混合内容问题,我还需要加载 https://。实际上我正在为用户使用带有 SSL 证书的 Cloudfront。
如果我进一步解释,Cloudfront 的原始网站是没有 SSL 的同一个网站。比如,
Cloudfront 源网站:
http://subdomain.maindomain.com/
用户访问网站:
https://www.maindomain.com/
所以我需要使用具有两个不同域的 http 和 https 选项的同一个网站,如前所述。希望有好的解决方案来解决这个问题。
最佳答案
因为现在是 2018 年,使用完全 https
工作流不仅是有效的——甚至是正确的形式。此方法会将您现有的 http
文件重写为本地 https
,从而避免对您的服务器进行任何重大重组。所以这里的额外好处是,您可以与任何“混合内容”问题吻别。
如果您还没有.htaccess
文件,请在html 根目录下创建一个。添加这些 rewrite
行:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
如果您遇到任何问题,请告诉我。
关于php - Wordpress 站点同时为不同域的 http 和 https 提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50719278/