.htaccess将所有HTTPS重写为HTTP,除了一页

时间:2014-06-29 14:39:47

标签: regex apache .htaccess mod-rewrite https

我希望将所有HTTPS重写为HTTP,但一页除外。问题是,有些页面包含查询字符串和其他包含页面路径的页面。不应该只重写包含特定查询字符串的一个页面。我无法一起得到它:

Should be rewritten:
https://domain.tld/index.php?id=1
https://domain.tld/index.php?id=2
[...and so on...]
https://domain.tld/path/page1.html
https://domain.tld/path/page2.html
[...and so on...]

Should NOT be rewritten:
https://domain.tld/index.php?id=999

1 个答案:

答案 0 :(得分:2)

您可以使用此规则将除了一个提到的URI之外的所有URI重定向到https

RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} !\s/+index\.php\?id=999[&\s] [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,NE,L]