在Wordpress中只使用正则表达式匹配一个URL段

时间:2014-01-02 17:59:28

标签: php regex wordpress url-rewriting rewrite

我想在Wordpress中重写这些网址:

http://localhost/one/.../
http://localhost/one/...

使用以下代码:

add_rewrite_tag('%my_test%','([^/]*)');

add_rewrite_rule(
    '^one/([^/]*)/?',
    'index.php?page_id=0&my_test=$matches[1]',
    'top'
);

虽然有效,但它也允许使用以下网址:

http://localhost/one/.../...
http://localhost/one/.../.../...

如何仅重写/one/...//one/...网址并为/one/.../.../等返回404?

1 个答案:

答案 0 :(得分:2)

'^one/([^/]*)/?',匹配/one/...//one/...以及/one/(nothing)。 Hovewer之外的任何东西都会被忽略,因为正则表达式没有被终止。您需要将$添加到最后。如果您不想匹配*,则可能希望将+替换为/one/(nothing)。因此,'^one/([^/]+)/?$',应该有用。

enter image description here