0


我正在尝试从

example.com/test/?var=somevalueexample.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 而我无法使用的是在 query_string 之前带有 page[1-9][0-9]*\.html 的 url

4

2 回答 2

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

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

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

但是我没有写那么多 RewriteRules,所以我可能是错的。

于 2013-07-24T00:28:55.813 回答
0

所以像这样的东西?

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /test/([^\?]*)\?var=([^&\ ]+)([^\ ]*)
RewriteRule ^ /test/%3/%2?%4 [L,R=301]
于 2013-07-24T00:40:13.563 回答