重写网址:QUERY_STRING并重定向

时间:2013-07-23 23:44:04

标签: regex .htaccess mod-rewrite


我正在尝试从

重写网址
  

example.com/test/?var=somevalue example.com/test/page1.html?var=somevalue

  

example.com/test/somevalue /

这是代码

RewriteCond %{REQUEST_URI} test/$ 
RewriteCond %{QUERY_STRING} var=([a-z]*|[a-z]*\-[a-z]*)$
RewriteRule ^test/(.*)$ /test/%1/page1.html? [R=301,L]

现在这只适用于url example.com/test/?var=somevalue,而我无法工作的是url with page [1-9] [0-9] * \ .html query_string < / p>

2 个答案:

答案 0 :(得分:1)

RewriteCond %{REQUEST_URI} test/(page[1-9][0-9]*\.html)?$

我认为这就是您正在寻找的内容,将您已经使用过的正则表达式与您在查询底部描述的正则表达拼凑在一起。但是我对你的重写规则有点震惊。我期待更多的内容:

RewriteRule ^test/([^/?])*\?([^&]+&)*var=([^&]+) /test/%3/page1.html

但是我没有写那么多RewriteRules,所以我错了。

答案 1 :(得分:0)

这样的事情?

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /test/([^\?]*)\?var=([^&\ ]+)([^\ ]*)
RewriteRule ^ /test/%3/%2?%4 [L,R=301]