嗨,我刚刚创建了一个链接缩短应用程序。但当我尝试将缩短链接重定向到 Facebook 上分享的完整 URL 时,它无法按预期工作。例如:https://bowa.me/c8443此链接工作正常,但如果我在 Facebook 上分享该链接,链接将如下所示 https://bowa.me/c8443?fbclid=IwAR0Zm8bGRgrbpQTUX_aVXxTMNFq6-MlRFe0j8e_7wm4anbWmvArPlyDaAHI此链接未重定向
nginx 配置
location / {
try_files $uri $uri/ /index.html /index.php;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
if (!-e $request_filename) {
rewrite ^/admin/(.*)?$ /admin/index.php?a=$1 break;
rewrite ^/(.*)$ /index.php?a=$1 last;
break;
}
答案1
在 nginx 中,应该遵循 nginx 最佳实践,而不是尝试将 Apache2 实践转换为 nginx。这是解决各种问题的良方。
您应该尝试以下方法:
# block for processing PHP files
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
# Capture part after admin to variable and use in try_files
location ~ ^/admin/(.*)$ {
try_files $uri $uri/ /admin/index.php?a=$1;
}
# Default location, capture URI part and use as argument
location ~ ^/(.*)$ {
try_files $uri $uri/ /index.php?a=$1;
}
顺序很重要,nginx 使用location
它找到的块中第一个正则表达式匹配。