我正在尝试从
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>
答案 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]