代码之家  ›  专栏  ›  技术社区  ›  Semicolon

htaccess合并301 www和https

  •  1
  • Semicolon  · 技术社区  · 7 年前

    下面的代码将none www重定向到www,然后转发到https://

    如何将这些合并到一个中,这样就不会出现双重重定向。

    # Redirect non www to www
    RewriteCond %{HTTP_HOST} ^mysite.nl$ [NC]
    RewriteRule (.*) http://www.mysite.nl/$1 [R=301,L] 
    
    # Redirect non https to https
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Ravi Sachaniya Helen    7 年前

    可以使用或条件合并这两个规则:

    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^mysite.nl$ [NC]
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

    “ornext | OR”(或next condition)使用此选项将规则条件与局部OR而不是隐式AND组合。

    参考号: http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

        2
  •  1
  •   Abhishek Gurjar    7 年前

    尝试以下规则,

    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} ^mysite.nl$ [NC]
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]