【发布时间】:2020-10-08 14:53:37
【问题描述】:
我目前正在尝试为 WordPress 中的 url 编写重写规则。原始 URL 如下所示:
http://localhost/download/d0RqYU8xek9JOXBsQmJrRGpldWF2QT09/?selected_files%5B0%5D=TURUWEdaWWNtS1ZOd2NSY0MybThCQT09&selected_files%5B1%5D=cWhFVEtlOENNM0VwNmlrUlBmOVF1UT09
/download/ 之后的第一个值是特定文件存储的唯一标识符。之后,我添加了一组文件。
在 WordPress 中,我现在想为此请求编写一个重写 URL,以便我可以在后端处理它。为此,我需要一个特定的正则表达式来识别请求并返回匹配项以构建我的重写 url:
public function filter_rewrite_rules_array( $rules ): array {
$new_rules['download/([0-9][a-z][A-Z]+)/.......'] = admin_url( 'admin-ajax.php' ) . '?download=$matches[1]&selected_files=$matches[2]';
return array_merge( $rules, $new_rules );
}
关键是我无法完成正则表达式......有人可以帮我解决这个问题吗?即使是第一场比赛也不起作用。
更新:
我期待这个 URL 的结果:
http://localhost/admin-ajax.php?download=d0RqYU8xek9JOXBsQmJrRGpldWF2QT09&selected_files%5B0%5D=TURUWEdaWWNtS1ZOd2NSY0MybThCQT09&selected_files%5B1%5D=cWhFVEtlOENNM0VwNmlrUlBmOVF1UT09
正如我刚才看到的 - 请求可以有多个文件 ID。所以不知道如何使用正则表达式完成此操作。这甚至可能吗?
【问题讨论】:
-
请也添加您的预期结果。
-
@Mandy8055 完成!
-
这部分是静态的:
http://localhost/admin-ajax.php?download=其余部分是动态的。 -
@Mandy8055 是的!非常感谢。请将其发布为答案,以便我给您打勾:)
标签: php regex url-rewriting