【发布时间】:2022-01-11 07:43:10
【问题描述】:
我正在尝试使用 nginx 进行重定向,如果它返回 /?SSO=1,它会重定向到 https://support.com.br/?SSO=1,但如果它返回 /?SSO=0,则 url 会转到 https://support.com.br/ 我的代码是这样的
map $arg_SSO $ssorewrite {
0 /;
1 /?SSO=1;
}
server {
listen 8080;
index index.php index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
rewrite ^/$ /?SSO=1 permanent;
port_in_redirect off;
if ($arg_SSO) {
rewrite ^/$ $ssorewrite last;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SERVER_NAME $host;
}
location ~ /\.ht {
deny all;
}
location ~ php-errors\.log$ {
deny all;
}
}
但是,它从这个重定向:https://support.com.br/ 为:https://support.com.br/?SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1&SSO=1
想法是从https://support.com.br/ 重定向到https://support.com.br/?SSO=1,如果它返回 ?SSO=0 或其他值,则将其重定向到 url https://support .com.br/ 我该如何解决?
【问题讨论】:
标签: php nginx redirect url-rewriting