Apache HTTPS - > HTTP - > HTTPS 301重定向

时间:2016-04-19 19:46:08

标签: apache .htaccess redirect mod-rewrite

我遇到一个问题,如果RewriteRule中遇到任何.htaccess,则301会从 https 重定向到 http 然后返回 https

例如,如果我的301重定向规则如下

RewriteRule ^/products/?$ /en/products/ [R=301,L]

然后它做的是

+------------------------------------+
| https://example.com/products/      |
+----------------+-------------------+
                 |
                 v
+----------------+-------------------+
| http://example.com/en/products/    |
+----------------+-------------------+
                 |
                 v
+----------------+-------------------+
| https://example.com/en/products/   |
+------------------------------------+

任何想法,可能会导致什么?

1 个答案:

答案 0 :(得分:0)

你在某处有另一个重写到HTTPS,对吗?

删除L标志。 [R = 301,L] - > [R = 301]。 L意味着最后,它不会查看下面列出的规则。如果HTTPS重写在此之后,那应该这样做。

另一种选择是你可以直接指向它:

RewriteRule ^/products/?$ https://{HTTP_HOST}/en/products/ [R=301,L]