如何结合两个apache htaccess重定向条件(http到https和非www到www)

luh*_*luh 3 regex apache .htaccess mod-rewrite redirect

我有两个重定向条件独立工作,但我想避免满足两个条件的情况(这导致两个重定向步骤而不是一个)

我必须承认我对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]
Run Code Online (Sandbox Code Playgroud)

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

显示满足两个条件时的多重定向结果的输出

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

anu*_*ava 5

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

RewriteEngine On

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

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