【问题标题】:Force HTTPS WWW and Add Trailing Slash to All URLS强制 HTTPS WWW 并向所有 URL 添加尾部斜杠
【发布时间】:2023-03-17 15:00:02
【问题描述】:

我试图避免多次重定向。我目前的设置包括以下内容:

       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 规则并在一条规则中删除了尾部斜杠,但没有找到一条添加斜杠的规则。

谢谢

【问题讨论】:

    标签: redirect


    【解决方案1】:

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

    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
    

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

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

    【讨论】:

    • 谢谢!我还需要所有网址的尾部斜杠。这似乎没有这样做。
    猜你喜欢
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多