0


からURLを書き換えようとしています

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]

これは今のところ、example.com/test/?var=somevalue という URL でのみ機能します。動作しないのは、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 に答える