Akh*_*esh 2 redirect rewrite nginx url-rewriting
在nginx 中,我使用如下参数重定向 URL:
www.example.com/watch?v=12345678 -> www.example.com?vid=12345678
所以我为此写了以下配置:
location /watch {
if ($args ~* v=(.*)) {
set $args vid=$1;
rewrite ^/watch?(.*)$ / redirect;
}
}
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作。但在这里我有几个疑问:
我没有什么比:
location /watch {
return 302 $scheme://$host?vid=$arg_v;
}
Run Code Online (Sandbox Code Playgroud)
它避免使用ifand rewrite,这总是一件好事。如果您需要v=在 URI 中检查,则使用if,而是测试是否$arg_v为空。
但是,即使没有参数或它为空,它也会重定向。我想您应该从重定向位置中过滤掉这些案例。
从 SEO 的角度来看,我没有看到任何区别。不过,我会避免为任何带参数的 URI 提供服务。我更喜欢像这样的 URIexample.com/video/123456