RewriteRule - перенаправление цикла - PullRequest
0 голосов
/ 29 октября 2010

Мне нужна помощь с этими 2 правилами переписывания:

RewriteEngine On
RewriteBase /

# folder/script.php?A=1&B=2  ->  xyz/1/2 (REDIRECT)
RewriteCond %{QUERY_STRING} ^A=([^&]+)&B=([^&]+)$
RewriteRule ^folder\/script\.php$ /xyz/%1/%2? [R=301,L]

# xyz/1/2  ->  folder/script.php?A=1&B=2 (REWRITE)
RewriteRule ^xyz\/([^\/]+)\/([^\/]+)$ /folder/script.php?A=$1&B=$2 [L]
  • Сначала мне нужно "REDIRECT"ОТ: efectorelativo.net/folder/script.php?A=1&B=2TO: efectorelativo.net/xyz/1/2

  • Тогда мне нужно "REWRITE", а не "REDIRECT"ОТ: efectorelativo.net/xyz/1/2TO: efectorelativo.net/folder/script.php?A=1&B=2

РЕДАКТ.

1 Ответ

1 голос
/ 29 октября 2010

Проверьте строку запроса в THE_REQUEST вместо текущего URL:

# folder/script.php?A=1&B=2  ->  xyz/1/2 (REDIRECT)
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^?\ ]*\?A=([^&]+)&B=([^&\ ]+)\ 
RewriteRule ^folder/script\.php$ /xyz/%1/%2? [R=301,L]
...