正则表达式模式的问题:
/code-examples/(.*)
/code-examples/android/(.*)
只有当结束斜杠(
/
) URL中存在;e、 g.:
# Example 1: $1 is \'page1\'
/code-examples/page1
/code-examples/android/page1
# Example 2: $1 is \'\' (empty)
/code-examples/
/code-examples/android/
# Example 3
# No matches because the ending / is not present.
/code-examples
/code-examples/android
其中“占位符”(即。
(.*)
) 匹配
page1
在第一个示例中,以及
\'\'
(即空字符串)在第二个示例中。
要实现这些目标:
/code-examples
/code-examples/android
您可以使用
(?:/?(.*)|\\b)
而不是
/(.*)
, 像这样:
/code-examples(?:/?(.*)|\\b)
/code-examples/android(?:/?(.*)|\\b)
但是由于您重定向到相同的URL(
/tutorials/android/$1/
), 您可以这样组合这些正则表达式模式:
/code-examples(?:/android|)(?:/?(.*)|\\b)
在哪里
/code-examples(?:/android|)
匹配其中一个
/code-examples
或
/code-examples/android
.
我用重定向插件添加了重定向。
我想你在工具上有这样的东西→重定向(&R);重定向页面(中wp-admin
):
现在,使用组合的RegEx模式,删除第二个重定向,并编辑第一个重定向,如下所示:
注意:对于类型和组设置,只需使用现有设置
Resources:
<重定向正则表达式:
https://redirection.me/support/redirect-regular-expressions/https://regexr.com/41vch &mdash;用于测试组合的RegEx模式。但请注意,在RegExr上,您需要使用\\/
而且不仅仅是/
. 一、 e.逃离/
使用\\
.