在Nginx中,URL重写通常是通过rewrite指令实现的。这个指令可以在server、location或if块中使用。以下是一些基本的URL重写示例:
location /old-url {
rewrite ^/old-url$ /new-url permanent;
}
这个示例将把访问/old-url的请求重定向到/new-url,并返回301永久重定向状态码。
location ~ ^/category-(\d+)$ {
rewrite ^/category-(\d+)$ /products?id=$1 last;
}
这个示例将匹配以/category-开头的URL,并将其重写为/products?id=,后面跟着匹配到的数字。last标志表示停止处理后续的重写规则。
location /old-url {
rewrite ^/old-url$ /new-url?param=value last;
}
这个示例将把访问/old-url的请求重定向到/new-url,并在URL中添加查询参数param=value。
try_files指令进行URL重写:location / {
try_files $uri $uri/ /index.php?$args;
}
这个示例将尝试按顺序查找请求的文件或目录,如果找不到,则将请求重定向到index.php,并保留原始查询参数。
注意:在使用rewrite指令时,请确保遵循Nginx配置文件的语法规则,并在修改配置后重新加载Nginx服务。