我已将我的网站从 http 重定向到 https。我想允许用户代理XYZ和XYZ输入 http 和 https 版本。
现在虚拟主机看起来像这样:
server {
listen 80;
server_name example.com www.example.com;
rewrite ^/(.*)$ https://www.example.com/$1 permanent;
}
如何编辑它,以允许包含 XYZ 的代理同时查看 HTTP 和 HTTPS?换句话说...如何禁用此类代理的重定向?
我试过了
if ($http_user_agent ~* "^XYZ$") {
rewrite ^/(.*)$ https://www.example.com/$1 permanent;
}
但这似乎只重定向 XYZ。但是如果 XYZ,不是严格的 XYZ,但包含 XYZ,我需要禁用重定向...
使用 ~* 您试图松散地匹配字符串,但您的正则表达式是 ^XYZ$ ,它表示仅当它以 XYZ 开头并且仅当它以 XYZ 结尾时才匹配。这一点都不松。你在那里有点自相矛盾。
请参阅此处的文档:http: //nginx.org/en/docs/http/ngx_http_core_module.html#location
您可能想要调整您的正则表达式以允许更多变化。从您的问题来看,我们很难知道您想要匹配什么。可能是这样的: