.htaccess 将子目录从http重定向到https

.htaccess 将子目录从http重定向到https,.htaccess,redirect,.htaccess,Redirect,我刚刚使用以下htaccess重写规则将我的站点从http重定向到https 我的网站位于public_html下的文件夹中。假设文件夹名为“mySitefolderName” 通过这个规则,我实现了将我的站点从http重定向到https, 但谷歌上“mySitefolderName”下的子目录的旧链接并没有被重定向 例如,假设我在谷歌上有一个旧链接: mysite.com\mySitefolderName\someSitePage.php 如果我从google上点击这个链接,它仍然会继续使用h

我刚刚使用以下htaccess重写规则将我的站点从http重定向到https

我的网站位于public_html下的文件夹中。假设文件夹名为“mySitefolderName”

通过这个规则,我实现了将我的站点从http重定向到https, 但谷歌上“mySitefolderName”下的子目录的旧链接并没有被重定向

例如,假设我在谷歌上有一个旧链接: mysite.com\mySitefolderName\someSitePage.php

如果我从google上点击这个链接,它仍然会继续使用http


如何确保指向子目录的所有旧链接也重定向到https?

/mySitefolderName/.htaccess
中添加此规则:

RewriteEngine On

# add https    
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=302,L]

# add www    
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=302,L]

谢谢你的帮助。当我添加此项时,我的站点未加载。我得到一个错误,我的网站有一个重定向循环,但它确实改变了旧的URL。google上的旧链接已更改为https。不,我的“mySitefolderName”中根本没有htaccess文件。我的公共html的htaccess文件中有“RewriteOptions inherit”。感谢Anubhava的建议。从公共html的htaccess中删除“重写选项继承”并在mySitefolderName的htaccess中添加代码后,它现在可以工作了。但是我还有一个问题。旧链接从http重定向到https,但由于它们没有“www”前缀,因此在继续使用https之前,我会收到一个证书警告。请您修改上述规则,以便在旧链接中添加“www”前缀
RewriteEngine On

# add https    
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=302,L]

# add www    
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=302,L]