php - HTTPS 子域不断重定向到 HTTPS 主域

标签 php wordpress apache .htaccess ssl

对此感到沮丧,所以我希望有人能提供帮助。我认为这在 .htaccess 文件中很容易修复。

我一直在尝试为我的成员(member)门户实现通配符 SSL 证书。

我的主域是 www.rawtillwhenever.com 子域是 members.rawtillwhenever.com

我在没有安全证书的情况下构建了主域,今天才将其添加到其中。我通过 Bluehost 购买了通配符证书,然后使用 wordpress 插件“Really Simple SSL”将其添加到站点。

我已经将成员(member)门户网站的网址更改为包含 https,但它 (https//members.rawtillwhenever.com) 一直重定向到 https//rawtillwhenever.com

如果我尝试访问 http//members.rawtillwhenever.com(没有 https),它仍然会重定向到 https//rawtillwhenever.com

我已经联系了 bluehost 支持,他们刚刚在这里给了我这份文件。 https://my.bluehost.com/cgi/help/766

主域在子文件夹/public_html/rawtillwhenever/中,子域在/public_html/rawtillwhenever/members/中

当我使用 http/https header 检查时,它会返回:

HTTP/1.1 301 Moved Permanently => 
Date => Sun, 14 May 2017 20:04:11 GMT
Server => Apache
Location => https://www.rawtillwhenever.com/
Cache-Control => max-age=3600
Expires => Sun, 14 May 2017 21:04:11 GMT
Vary => Accept-Encoding,User-Agent
Content-Length => 0
Connection => close
Content-Type => text/html; charset=UTF-8

子域的 .htaccess 文件是:

# BEGIN 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>

# END WordPress

如果有人能帮助我,那就太好了,否则我会花时间来解决它。

编辑 将子域的 .htaccess 文件更新为:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^members.rawtillwhenever.com$`
RewriteCond %{REQUEST_URI} !^/members/
RewriteRule ^(.*)$ /members/$1
RewriteCond %{HTTP_HOST} ^members.rawtillwhenever.com$`
RewriteRule ^(/)?$ members/index.php [L]

# BEGIN 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>

# END WordPress

仍然得到重定向

最佳答案

不确定您的具体配置,但您可能正在寻找的是:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^members.rawtillwhenever.com$`
RewriteCond %{REQUEST_URI} !^/members/
RewriteRule ^(.*)$ /members/$1
RewriteCond %{HTTP_HOST} ^members.rawtillwhenever.com$`
RewriteRule ^(/)?$ members/index.php [L]

之后,尝试清除浏览器缓存以执行新规则。

希望对您有所帮助! :)

关于php - HTTPS 子域不断重定向到 HTTPS 主域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43968440/

相关文章:

javascript - 将远程 AngularJS 应用程序嵌入网页的正确方法是什么?

php - sql select 查询不起作用,根据选择的内容查看结果

html - 如何设置相同的填充大小

regex - 仅从 1 个页面的网址中删除 .php 扩展名

apache - 使用 .htaccess 删除 URL 中不需要的部分

javascript - 如何获取php到ajax的返回值

php - MySQL 查询错误-没有为准备好的语句中的参数提供数据

javascript - jQuery 选择器和智能克隆

wordpress - 是什么使Wordpress主题成为 "invalid parent theme"?

apache - 使用 ajp 协议(protocol)连接到备用备用主机别名