强制使用HTTPS WWW并将结尾斜杠添加到所有URL

时间:2018-08-10 12:58:58

标签: redirect

我正在尝试避免多次重定向。我当前的设置包括以下内容:

       RewriteCond %{HTTP_HOST} ^example.com [NC]
       RewriteRule ^\/?(.*)$ https://www.example.com/$1[R=301,L]
       RewriteCond %{HTTP:X-Forwarded-Proto} =http
       RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
       RewriteCond %{REQUEST_URI} /+[^\.]+$
       RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

我需要的是一个强制使用HTTPS,WWW并使用一个规则将斜杠添加到所有URL的规则。

以上内容迫使网址通过两次重定向运行。

我到处搜索,能够找到https / www的一条规则,并在一条规则中删除结尾的斜杠,但没有一条用于添加斜杠。

谢谢

1 个答案:

答案 0 :(得分:0)

来自 https://simonecarletti.com / blog / 2016/08 / redirect-domain-http-https-www-apache / 答案似乎是:

  RewriteEngine开启
RewriteCond%{HTTPS}已关闭[或]
RewriteCond%{HTTP_HOST}!^ www \。 [NC]
RewriteCond%{HTTP_HOST} ^(?: www \。)?(。+)$ [NC]
RewriteRule ^ https://www.%1% {REQUEST_URI} [L,NE,R = 301]
 

每个规则之前可以有多个条件。

或者只需将现有RewriteRules中的 [L] 标志更改为 [N] ,即可一次性处理所有规则。