Мне нужно переписать URL-адрес из чего-то вроде
/index.php?option=com_scoreboard&view=scoreboard&agent=001C0000016rJeUIAU
в
/quote/?agent=001C0000016rJeUIAU
.
Вот, что у меня есть до сих пор.
RewriteCond %{QUERY_STRING} agent=(\w+)&?
RewriteRule ^index.php /quote/?agent=%1 [R=301,L]
Это прекрасно работает и денди, но заканчивается бесконечным циклом. И я знаю, почему тоже, потому что он продолжает находить agent=
. Что я должен добавить к моим правилам перезаписи, чтобы остановить это?
Я также пробовал варианты, такие как
RewriteCond %{QUERY_STRING} ^option=\w+?&agent=(\w+)&?
RewriteRule ^index.php /quote/?agent=%1 [R=301,L]
Но это заканчивается тем же бесконечным перенаправлением.
Это также касается сайта Joomla, если это помогает. Поэтому после этого правила стандартная перезапись Joomla.
Огромное спасибо!
Bette вместо переменной THE_REQUEST
и обязательно сохраните это правило в качестве первого правила:
RewriteCond %{THE_REQUEST} /index\.php\?agent=(\w+)
RewriteRule ^ /quote/?agent=%1 [R=301,L]
THE_REQUEST
представляет собой исходный запрос, полученный Apache из вашего браузера, и он не перезаписывается после выполнения некоторых правил перезаписи.
RewriteCond %{THE_REQUEST} /index.php\.php\?agent=(\w+)&? RewriteRule ^ /quote/?agent=%1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
и RewriteCond %{REQUEST_FILENAME} !-d
Мышление, которое может помочь, но на самом деле правило вообще не работает.