【问题标题】:https on subdomain redirects to main domain; subdomain works without https子域上的 https 重定向到主域;子域在没有 https 的情况下工作
【发布时间】:2016-12-13 05:25:25
【问题描述】:

我有一个网站https://www.example.com 和子域https://sub.example.com

我的问题是,每当我尝试访问 https://sub.example.com 时,我都会被重定向到 https://www.example.com。但是,当我访问http://sub.example.com 时,我没有被重定向。

我有一个通配符 SSL 证书,它应该允许我使用 https:// 访问我的子域。这两个站点都运行 WordPress,并由 Bluehost 托管。我尝试了许多解决方案,并且两次联系 Bluehost 客户支持均无济于事。我希望能够在启用 SSL 的情况下访问我的主域和子域。

我已根据此处找到的以下解决方案编辑了.htaccess 文件:htaccess redirect domain to https, subdomain to http and www to non-www

# for main domain
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L,NE]

# for sub domain
RewriteCond %{HTTP_HOST} ^(www\.)?sub\.example\.com$ [NC]
RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ http://sub.example.com%{REQUEST_URI} [R=301,L,NE]

https://my.bluehost.com/hosting/help/766

# Custom subdomain .htaccess SSL + WordPress
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain.maindomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^subdomain.maindomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
# End custom subdomain .htaccess

# Custom maindomain .htaccess WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$
RewriteRule ^index\.php$ - [L]
RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# End custom maindomain .htaccess

http://www.wpbeginner.com/wp-tutorials/how-to-add-ssl-and-https-in-wordpress/

我还尝试了主域和子域的全新 WordPress 安装,但没有成功。我不确定还能尝试什么。任何帮助和建议将不胜感激。

【问题讨论】:

  • 您需要发布整个 .htaccess 文件,包括 WordPress 指令 - 顺序很重要。为什么您似乎引用 Bluehost 帮助文档中的代码示例?您发布的内容中没有任何内容重定向到https://www.example.com?!这表明您的 WordPress 安装存在配置错误。

标签: wordpress .htaccess ssl subdomain


【解决方案1】:

尝试几件事:

  1. 首先,在进行更改时,请使用Webconfs HTTP Header Checker 之类的工具。这样,如果您的 Web 浏览器缓存了重定向并且您进行了修复重定向的更改,标题检查器就不会被愚弄。另一方面,您的网络浏览器即使在问题修复后仍会继续重定向,直到您清除缓存。或者,您可以尝试使用 Chrome 隐身窗口。

  2. 不要只使用一个 .htaccess 文件,而是为每个站点使用一个。假设 example.com 是您的主域,您可以为根文件夹中的“根”WP 站点设置规则,并且您将为单独的 WP 安装所在的文件夹中的“子域”WP 站点设置规则 - /subdomain .com/.htaccess。

  3. 确保您的“根”WP 站点 URL 和主 URL 都设置为 https 版本。您可以在几个地方执行此操作:在“根”WP 站点的 wp-admin 中,转到“设置”>“常规”。 “WordPress 地址(URL)”和“站点地址(URL)”都需要 https。如果它们设置为 http,当您单击保存时,它将注销您。或者,您可以在 phpMyAdmin 中执行此操作 - 在 wp_options 表中,查找“siteurl”和“home”选项并确保它们是 https 而不是 http。

  4. 听起来您的“根”WP 是在站点不安全时安装的,在 http 上运行。有时它不仅仅需要更新站点 URL 和主页 URL。尝试使用WP Migrate DB,它将执行搜索和替换以将您的 http URL 的所有实例转换为 https URL。

  5. 所有这些都完成后,如果“根”站点仍然重定向到非安全版本,您可以安装一个插件,例如 WordPress Force HTTPS。

【讨论】:

  • 其他人注意:我没有验证答案,因为我没有遇到这个问题,而是提供赏金以回应新用户的评论(在答案中)。但是,这是一个高质量的答案,如果其他人找到更好的选择,他们可以提供更好的答案。
猜你喜欢
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 2017-04-22
  • 2020-04-21
  • 2018-06-02
  • 2014-09-23
相关资源
最近更新 更多