代码之家  ›  专栏  ›  技术社区  ›  Dominik Wilga

将http重定向到https,将www重定向到非www,并在一次重定向中删除最后一个斜杠

  •  0
  • Dominik Wilga  · 技术社区  · 6 年前

    是否可以将http重定向到https,将www重定向到非www,并在一个htaccess重定向中删除最后一个斜杠,这样可以对seo友好?

    我有这个:

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

    我不知道如何添加到这个重定向删除最后一个斜杠。

    1 回复  |  直到 6 年前
        1
  •  0
  •   anubhava    6 年前

    您可以将此代码用于一次重定向来处理所有3种情况:

    RewriteEngine On
    
    ## Unless directory, remove trailing slash
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^(.+)/$
    RewriteRule ^ %1 [L,E=DELSLASH:1]
    
    # perform redirect for 1. www removal, 2. trailing / removal and 3. http->https
    RewriteCond %{ENV:REDIRECT_DELSLASH} =1 [OR]
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]