apache - htaccess 将域和子域重定向到 https,包括 www
问题描述
我在使用 https 重定向 url 时遇到问题
- www.domain.com 到 domain.com
- www.name.domain.com 到 name.domain.com
域可以,但子域不行。
这是我的 .htaccess 代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,NC]
RewriteCond %{HTTP_HOST} ^www.(.+).example.com [NC]
RewriteRule ^(.*)$ http://%1\.example.com/$1 [R=301,NC]
我正在检查这个,但它不起作用:
# redirect www to none-www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [QSA,R=301,L]
# redirect http to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [QSA,R=301,L]
解决方案
你可以使用它:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [R=301,NC]
RewriteCond %{HTTP_HOST} ^www.(.+).example.com [NC]
RewriteRule ^(.*)$ https://%1.example.com/$1 [R=301,NC]
我对其进行了测试,它工作正常,但这取决于您对子域的设置,如果您的子域指向主目录,您需要将 htaccess 文件放在主目录中,但如果您的子域指向另一个目录,则必须放置您在所有目录中的 htaccess 文件,您可以在主机面板中检查它
推荐阅读
- postgresql - Postgres 聚合查询太慢
- azure-active-directory - 添加 displayName 或 ApplicationID URI 作为客户端凭据声明
- database - SQL 命令未以插入语句正确结束
- c++ - 不懂C++栈
行为 - windows - 使用 ForEach 循环计算 PowerShell 中安全日志文件 ID 的出现次数
- three.js - 如何访问相机三.js 编辑器?
- python - 在 Numpy 中,如何使用一个项目数组作为指导来确定第二个数组中项目的索引?
- c++ - sfml 网络 - 套接字接收忽略
- ruby-on-rails - 构建 gem 原生扩展失败?
- firebase - firebase-admin createUser 具有随机密码或默认未定义