除特定页面外,通过htaccess将整个站点重定向到https

时间:2015-08-24 13:44:53

标签: regex apache .htaccess mod-rewrite url-rewriting

我有这段代码:

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|ico|js|css)$ [NC]
RewriteRule !^billing(/.*)?$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC,NE]

如果他们尝试使用http访问 billing / 区域以外的任何内容,则会将其重定向到https等效内容。

然而,我想知道如何将其他页面添加到"白名单"允许通过https加载的页面?

这两个问题将是:

但是他们最后都可能有查询参数

有人可以解释如何将上述内容添加到允许从https访问的内容,以便下次我想知道添加内容吗?

1 个答案:

答案 0 :(得分:1)

您不必担心查询字符串,这些字符串在请求URI之外匹配。您可以添加其他条件:

RewriteCond %{HTTPS} =on
RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|ico|js|css)$ [NC]

RewriteCond %{REQUEST_URI} !^/billing
RewriteCond %{REQUEST_URI} !^/remote/get_breaks\.php
RewriteCond %{REQUEST_URI} !^/thumbnail\.php

RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NC,NE]

让它更容易阅读。