正则表达式 – 如何结合两个apache htaccess重定向条件(http到https和非www到www)

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何结合两个apache htaccess重定向条件(http到https和非www到www)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个重定向条件独立工作,但我想避免满足两个条件的情况(这导致两个重定向步骤而不是一个)

我必须承认我对apache正则表达式并不好,所以我把它们从网上拿走了.知道如何将两者(A或B有点逻辑与正则表达式)结合起来吗?

这是代码.

RewriteEngine On
# redirect from http to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

# redirect from non-www to www https
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

满足两个条件时输出的多重定向结果如下所示:

任何帮助深表感谢.谢谢.

解决方法

您可以使用OR条件将两个规则合并为一个:

RewriteEngine On

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L,NE]

只需将www.domain.com替换为您的实际域名即可.此外,最好在新的浏览器中测试它,以避免301缓存问题.

猜你在找的正则表达式相关文章