redirect - 仅重定向到裸域
问题描述
在我的 Apache 2.4 网络服务器上,我配置了一个虚拟主机以将 http 上的所有请求重定向到 https,它工作正常。我想通过添加以下规则来改进它:
我当前的虚拟主机定义(适用部分)如下:
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.domain.example [OR]
RewriteCond %{SERVER_NAME} =domain.example
RewriteCond %{HTTP_HOST} !=mail.domain.example
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
我知道我必须改变{SERVER_NAME}
部分,大概我必须放在那里
RewriteRule ^ https://domain.example%{REQUEST_URI} [END,NE,R=permanent]
但这是一个生产环境,我无法对此进行测试。
解决方案
您可以使用它来强制两者https
和 non-www
:
RewriteEngine on
RewriteCond %{SERVER_NAME} ^www\.domain\.example$ [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_NAME} ^(www\.)?(.+)$
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
在第一个条件中替换www.domain.example
为您的真实域名,并确保在测试此新规则之前重新启动您的 Web 服务器。
推荐阅读
- c# - 如果文件在 UWP 应用程序中发生更改,如何跟踪?
- reactjs - 即使设置了令牌和所有内容,如何解决 401 unAuthorized 错误?并且邮递员在测试时根本没有返回任何问题 -MERN Stack
- mysql - FIREDAC TFDparams - 无法发送表情符号
- javascript - 为什么当开发人员控制台打开时鼠标事件的采样率更高?作为开发人员我可以/应该做什么?
- c# - 如何在 C# 中使用 curl
- facebook - 获得 Manage_pages 权限的 Facebook Webhook 已被撤销该应用程序
- javascript - firebase 云功能错误:超出内存限制。函数调用被中断
- jquery - 在 jQuery 中获取未定义的值
- servicestack - 寻求对ServiceStack.Redis的理解:IRedisClient.PublishMessage vs IMessageQueueClient.Publish
- php - 如何在 Laravel 中使用具有不同页面和路由的多个域?