mod重写的递归正则表达式

时间:2012-06-30 14:48:14

标签: regex .htaccess mod-rewrite url-rewriting seo

我正在尝试使用mod_rewrite来递归修改我的网页网址,但我无法找出这种情况的重写规则:

我想从模式

更改我的网址
http://mywebsite.com/token1-token2-token3-token4-categoryname

http://mywebsite.com/?cat=categoryname&search=token1+token2+token3+token4

挑战是url中的令牌数量可能会有所不同,因此我需要以某种方式递归地处理令牌匹配和转换。任何想法如何实现?

2 个答案:

答案 0 :(得分:1)

尝试:

# Remove all of the - and replace with +
RewriteRule ^(.*)-(.*)$ /$1+$2 [L]

# only rewrite when there are no more -
RewriteCond %{REQUEST_URI} !\-
RewriteRule ^(.+)\+([^\+]+)$ /?cat=$2&search=$1 [QSA,L]

答案 1 :(得分:0)

RewriteRule ^/?(.+)\-([^\-]+)$ /?cat=$2&search=$1 [QSA,L]