Apache htaccess重定向到https的所有URL,除了某些URL带有各种参数

克里斯蒂安

我想将所有不安全的URL重定向到HTTPS,除了包含各种参数的自定义URL。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/code-validator/?code=
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

因此,http://example.com/code-validator/?code=123或此URL上的任何参数都不会重定向到HTTPS。

阿努巴瓦

使用THE_REQUEST而不是REQUEST_URI能够:

  1. 匹配查询字符串,因为REQUEST_URI仅匹配URI而没有查询字符串
  2. 获取对Apache收到的未修改的原始URL的访问权

您的规则可以是:

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteCond %{THE_REQUEST} !/code-validator/\?code= [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

确保将此规则作为最重要的规则,并清除旧的浏览器缓存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Apache将所有重定向到www https

Apache mod-rewrite重定向而不更改带有参数的url

如何重定向到相对URL htaccess Apache 2.22

Apache .htaccess:重定向到包含井号的URL

Apache .htaccess“重定向到非URL”错误

带有和不带有WWW的Apache重定向URL

在.htaccess中使用指令将HTTP流量有选择地重定向到https(Apache)

Apache GeoIP 重定向到带有问号的页面

重定向除 Apache 000-default.conf 中的一个之外的所有 url

Apache重定向有/无URL替换的特殊情况

我的.htaccess无法在apache上工作以重定向到参数

Apache重定向保持URL

限制apache重定向中的某些url模式

Apache .htaccess重写规则将URL从子目录重定向到父目录

Apache htaccess从301重定向中排除特定URL

Apache-.htaccess-仅重定向以/ feed结尾的URL

nginx:将所有内容从http重定向到https,除了一个url模式

在Apache中将HTTPS重定向到HTTP

http到https apache重定向

正确的Apache从http重定向到https

Apache2 重定向到 https

Apache .htaccess mod_rewrite-无法重定向到具有相同前缀的文件?

如何将带有参数的URL重定向到htaccess中的干净URL?

将 http 重定向到 https 仅在页面刷新 Apache2 后有效

Apache:从子域重定向到Wordpess页面URL路径

域URL重定向到apache2中的localhost

如何在没有 Apache 和 Nginx 的情况下将所有 HTTP 请求重定向到 ELB 中的 HTTPS

Apache2将所有站点重定向到WWW

Apache-将所有流量从端口80重定向到443失败