Apache Mod Rewrite具有灵活的参数

时间:2013-05-08 08:38:53

标签: apache

我遇到了apache mod rewrite的问题,我需要生成一个灵活参数的SEF查询

示例:

www.myname.com/category.php?p1=itemname&p2=categoryname&p3=color&p4=size

www.myname.com/category.php?p1=itemname&p3=color

www.myname.com/category.php?p3=color&p4=size

组合总是不同的。

我怎么能动态地做到这一点?

我开始时:

RewriteRule ^search/([^/]+)-([^/]+)-([^/]+)$ category.php?p1=$1&p2=$2&p3=$3&p4=$4

谢谢!!

1 个答案:

答案 0 :(得分:0)

无法以您想要的灵活方式构建匹配的正则表达式。 我看到了一些替代方案:

  1. 您可以在网址中指定earch参数的位置,例如: http://www.myname.com/param1-param2-param3-param4
    但是如果没有其中一个参数,分隔符char仍然应该在url中:a http://www.myname.com/--color-size
    在我看来,网址是UGLY

  2. 您可以评估网址路径参数的使用情况,看看what every developer should know about url encoding
    有了这个替代方案,网址可能是这样的:
    http://www.myname.com/item;name=xxx;category=yyy;color=zzz

  3. 我不知道搜索引擎会如何考虑这个网址,但我想这是SEF。