You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用add_rewrite_rule传递变量并实现特定URL重定向

URL重定向实现方案

以下针对两种常见服务器环境给出配置方案,规则顺序很重要,需将更具体的规则放在前面:

Apache(.htaccess 配置)

在网站根目录的.htaccess文件中添加以下规则(确保服务器已启用mod_rewrite模块):

RewriteEngine On
# 处理 /foo/entries/doedit?id=xxx 的重定向
RewriteRule ^foo/([^/]+)/([^/]+)$ /foo?section=$1&action=$2&%{QUERY_STRING} [L,R=301]

# 处理 /foo/doedit?id=xxx 的重定向
RewriteRule ^foo/([^/]+)$ /foo?action=$1&%{QUERY_STRING} [L,R=301]
  • [L]表示匹配后停止后续规则处理;[R=301]为永久重定向,若需临时重定向可改为R=302。
  • 正则^foo/([^/]+)/([^/]+)$会捕获entries和doedit,分别对应变量$1和$2;%{QUERY_STRING}会自动保留原URL的id参数。

Nginx(站点配置文件)

在对应站点的server块中添加以下rewrite规则:

# 处理 /foo/entries/doedit?id=xxx 的重定向
rewrite ^/foo/([^/]+)/([^/]+)$ /foo?section=$1&action=$2$is_args$args permanent;

# 处理 /foo/doedit?id=xxx 的重定向
rewrite ^/foo/([^/]+)$ /foo?action=$1$is_args$args permanent;
  • permanent对应301永久重定向,临时重定向替换为redirect。
  • $is_args会根据原URL是否带参数自动添加?或空字符串,$args保留原参数(如id=17)。

内容的提问来源于stack exchange,提问作者Trinity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:42:05