添加_重写_规则以将整个路径作为单个参数传递

时间:2015-10-06 作者:jdias

我想重写url并将整个路径作为参数传递。类似于:

www.example。com/csearch/foo1/bar1/foo2/foo3/bar4=>www.example。com/索引。php?page\\u id=23(&U);C搜索=foo1/bar1/foo2/foo3/bar4

page\\u id 23上的脚本将解析csearch的内容。

/c搜索/后的路径长度不同。它可以有0或30个级别。

我只有一个级别的工作解决方案

www.example。com/csearch/foo1=>www.example。com/索引。php?page\\u id=23(&U);过滤器=foo1

可以很好地将以下内容添加到函数中。php

function create_new_url_querystring() {
    add_rewrite_rule(\'^csearch/([a-zA-Z-]*)/?$\', \'index.php?page_id=23&filter=$matches[1]\', \'top\');
}
add_action(\'init\', \'create_new_url_querystring\');
我相信我需要一个新的正则表达式来匹配整个路径,而不仅仅是第一级。

有没有办法解决我的问题?

谢谢

1 个回复
最合适的回答,由SO网友:Joel 整理而成

对正则表达式的快速调整。您当前只捕获第一个/

add_rewrite_rule(\'^csearch/(.*)$\', \'index.php?page_id=23&filter=$matches[1]\', \'top\');
请注意,在解析时,在filter值的末尾可能有或可能没有尾部斜杠。

相关推荐

Redirection problems

请帮助我克服重定向问题。我需要在子域上工作,而不是在主域上工作,但这里两个域是不同的。我所做的是-将所有(website.com)文件复制到另一个子域(demo.websiteA.com),并根据wp配置更改数据库名称。php文件。但每当我尝试打开演示时。网站a。com它重定向到网站。com公司请帮帮我提前感谢