【发布时间】:2021-08-12 04:01:44
【问题描述】:
关于 .htaccess 文件的问题。我已经解决了几乎所有相关的问题,没有答案给出一般的解决方案。
我希望 所有人都使用 https,www 到顶级域,包括国家代码顶级域(co.uk、co.jp、com.cn),非 www 到子域。
如何实现?
我尝试像这样编辑 .htaccess 文件(不仅仅是这个 sn-p,我也尝试了很多其他文件):
# HTTPS forced with www
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# END HTTPS
它不适用于子域,www 将被添加到它之前。
更新:
经过一番调查,我认为最好的做法是不要对顶级域和国家代码顶级域都有一个通用的解决方案。
所以我正在分别为 TLD 和 ccTLD 寻找 2 个通用解决方案,然后我不需要将字符修改为我的域之类的东西。
解决方案 1 应该具有预期的 TLD 重定向行为,如下所示:
-
http://example.com->https://www.example.com -
https://example.com->https://www.example.com -
http://www.example.com->https://www.example.com -
https://www.example.com,保持不变 -
http://subdomain.example.com->https://subdomain.example.com
解决方案 2 应该具有预期的 ccTLD 重定向行为,如下所示:
-
http://example.co.uk->https://www.example.co.uk -
https://example.co.uk->https://www.example.co.uk -
http://www.example.co.uk->https://www.example.co.uk -
https://www.example.co.uk,保持不变 -
http://subdomain.example.co.uk->https://subdomain.example.co.uk
【问题讨论】:
-
您的域/子域是否指向同一个文档根目录?
-
@AmitVerma 是的,目前
staging1.example.com等子域与主域位于同一根文件夹中。