mod_rewrite - старое имя параметра к новому имени - PullRequest
1 голос
/ 20 февраля 2009

Привет всем, мне нужно немного заставить работать редирект в mod_rewrite.

Мне нужно перенаправить следующее

http://mysite.com/dictionary/find?word=test

до

http://mysite.com/dictionary/find?w=test

Я уверен, что решение достаточно тривиально, но мои знания mod_rewrite и регулярных выражений довольно ограничены, и я не смог выработать. Это то, что я пытался до сих пор безрезультатно.

RewriteCond %{QUERY_STRING} word= [NC]
RewriteRule ^/(.*)word=(\w+)/$ /w=$1 [L]

Любая помощь будет высоко ценится. Спасибо.

Ответы [ 2 ]

2 голосов
/ 20 февраля 2009

Этого должно быть достаточно для вас ...

RewriteRule (? | &) Word = (\ w +) $ 1w = $ 2

это заменит его, даже если в сочетании с другими параметрами. Ваша попытка обработать только строку запроса интересна, я никогда не использовал это и не могу ответить, если это возможно.

В качестве sidenote включите:

RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 2

для более полезной обратной связи.

0 голосов
/ 21 февраля 2009

Попробуйте это:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)word=(.*)
RewriteRule ^dictionary/find$ $0?%1w=%3 [R=301,L]
...