我遇到了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
谢谢!!
答案 0 :(得分:0)
无法以您想要的灵活方式构建匹配的正则表达式。 我看到了一些替代方案:
您可以在网址中指定earch参数的位置,例如:
http://www.myname.com/param1-param2-param3-param4
但是如果没有其中一个参数,分隔符char仍然应该在url中:a
http://www.myname.com/--color-size
在我看来,网址是UGLY
您可以评估网址路径参数的使用情况,看看what every developer should know about url encoding
有了这个替代方案,网址可能是这样的:
http://www.myname.com/item;name=xxx;category=yyy;color=zzz
我不知道搜索引擎会如何考虑这个网址,但我想这是SEF。