Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx 301重定向选项_Nginx - Fatal编程技术网

Nginx 301重定向选项

Nginx 301重定向选项,nginx,Nginx,我有大约100个URL需要从静态HTML永久重定向到Wordpress提供的动态页面。我找到的所有nginx301重定向示例都建议将每个重定向定义为自己的服务器块 但是,我发现一个服务器块中的多个重定向也可以工作,例如在这种简化配置中: server { listen 80; server_name www.example.com; root /var/www/; location = /subdir/red1.html { return 301 /subdir/?p=1; } locatio

我有大约100个URL需要从静态HTML永久重定向到Wordpress提供的动态页面。我找到的所有nginx301重定向示例都建议将每个重定向定义为自己的服务器块

但是,我发现一个服务器块中的多个重定向也可以工作,例如在这种简化配置中:

server {
listen 80;
server_name www.example.com;
root /var/www/;

location = /subdir/red1.html { return 301 /subdir/?p=1; }
location = /subdir/red2.html { return 301 /subdir/?p=2; }
location = /subdir/red3.html { return 301 /subdir/?p=3; }
}


Curl-I确认301代码。重定向发生了。我更喜欢这种配置,而不是每个重定向一个服务器块的配置,因为人的可读性更好。但是,如果每个重定向都在其自己的服务器块中,那么这种配置是否缺少其他配置?

那么,您发现的execrpt可能正在处理http到https重定向,在这种情况下,服务器块中没有更多内容是有意义的,因为vhost只用于重定向到其他域。这是完全错误的选择随机的例子,并把他们作为一个经验法则,而不是参考官方文件

100个重定向不是一个很大的数目,您甚至可以在一个唯一的服务器块中使用永久重写,并使用regex将它们分组

server {

    server_name www.example.com;
    root /var/www/;

    location /subdir/ {
        rewrite ^/subdir/red([1-3])\.html /subdir/?p=$1 permanent;
    }

}