Mod Rewrite Question - пересылка параметров новым именам параметров - PullRequest
1 голос
/ 11 февраля 2009

Я протестировал следующий Mod Rewrite на MAMP, но по некоторым причинам он не работает на LAMP Есть идеи, что я делаю не так?

RewriteEngine on
RewriteCond %{QUERY_STRING} ^newParamA=(.*)&newParamB=([0-9]*)$
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder\.php?oldParamC=%1\&oldParamD=%2 [QSA,L]

Идея состоит в том, что запрос типа

http://domain.com/newfolder/newsubfolder/?newParamA=query&newParamB=111

успешно отобразится на:

http://domain.com/oldfolder/oldsubfolder/?oldParamC=query&oldParamD=111

Ответы [ 2 ]

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

В настоящее время я не знаю, что может вызвать такое поведение. Но вы можете попробовать один из них:

RewriteCond %{QUERY_STRING} ^newParamA=([^&]*)&newParamB=([0-9]*)$
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder.php?oldParamC=%1&oldParamD=%2 [QSA,L]

RewriteCond %{QUERY_STRING} (^|&)newParamA=([^&]*)&newParamB=([0-9]*)($|&)
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder.php?oldParamC=%2&oldParamD=%3 [QSA,L]

Или даже:

RewriteCond %{QUERY_STRING} (^|([^&]*&)*)newParamA=([^&]*)(.*)
RewriteCond %3&%1&%4 ^([^&]*)(&[^&]*)*&newParamB=([0-9]*)
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder.php?oldParamC=%1&oldParamD=%3 [QSA,L]
0 голосов
/ 11 февраля 2009

В ответ на комментарий Гамбо (Вы используете тот же конфиг)

Да - последняя версия Apache, с включенным mod_rewrite - Кажется, ему не нравится RewriteCond - если я это закомментирую, по крайней мере, будет работать перенаправление пути. Когда я раскомментирую RewriteCond, я получаю сообщение об ошибке «Не найдено».

...