如何仅将HTTP子域重定向到.htaccess
中的HTTPS子域?主站点位于WordPress中,并且已经通过插件重定向到HTTPS,但是子域是PHP创建的站点。在这里,我已经找到了最终的解决方案,但是没有看到。
我复制并粘贴了此建议的代码,但没有执行任何操作:
#Redirect Subdomain
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [NC]
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
答案 0 :(得分:0)
RewriteEngine on RewriteCond %{HTTP_HOST} ^subdomain\.example\.com$ [NC] RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这将创建一个重定向循环(如果完全执行)。为了从HTTP重定向到HTTPS,您需要首先检查您是否尚未使用HTTPS(否则您将获得重定向循环)。
这些指令需要进入子域文档根目录的.htaccess
中。或者,如果子域指向主站点的文档根目录,则位于根(WordPress).htaccess
文件的顶部 。重要的是,重定向必须在WordPress前端控制器之前 。
这还假定您的SSL证书直接安装在应用程序服务器上,而不是代理服务器上。
尝试以下操作:
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com [NC]
RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这将检查HTTPS
中是否不包含“ ”,并且在重定向到同一主机上的HTTPS之前正在请求子域。
尽管如果WP只是简单地重定向主域,那么您可以在.htaccess
中进行所有操作,并简单地删除检查HTTP_HOST
的条件。尽管如果您还有其他不应重定向到HTTPS的子域,请更改 CondPattern 以仅与子域或主域(和www子域)匹配。例如:
RewriteCond %{HTTP_HOST} ^((subdomain|www)\.)?example\.com [NC]
答案 1 :(得分:-1)
请尝试以下操作之一:
you need to edit
Redirect "/" "https://yourwebsite.com/"
OR
您不需要编辑以下内容
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]