正则表达式规定重写具有两个OR三参数的URL

时间:2017-07-12 04:40:21

标签: regex .htaccess url-rewriting

我正在尝试重写一些网址,以使其更适合搜索引擎优化。

基本网址选项包括:

  • index.php?location=$matches[1]&tag=$matches[2]&partnertype=$matches[3]
  • index.php?location=$matches[1]&tag=$matches[2]&partnertype=$matches[3]
  • index.php?location=$matches[1]&partnertype=$matches[2]

我所拥有的主要是:

add_rewrite_rule('^location/(.*)/(.*)/(.*)?', 'index.php?
location=$matches[1]&tag=$matches[2]&partnertype=$matches[3]', 'top');
add_rewrite_rule('^location/(.*)/(.*)?', 'index.php?
location=$matches[1]&tag=$matches[2]&partnertype=$matches[3]', 'top');

这允许这些工作:

  • /位置/城市/技能/ partnertype /
  • /位置/城市/技能/
  • /位置/城市/

但是,它不允许/ location / city / partnertype /工作!

我尝试添加第三个重写规则以使其工作(下面),但是我还需要工作的中断/位置/城市/技能。

我试过第三次重写规则:

add_rewrite_rule('^location/(.*)/(.*)?', 'index.php?
location=$matches[1]&partnertype=$matches[2]', 'top');

我是一个正则表达式的菜鸟,所以我很确定它是在正则表达式中/ location /之后的部分内的东西,但我不知道它可能在哪里。有什么帮助吗?

0 个答案:

没有答案