htaccess переписать, вызывая бесконечное перенаправление

1

Мне нужно переписать 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.

Огромное спасибо!

  • 0
    так что вы не против выбросить два параметра из запроса?
  • 0
    @RamRaider Нет, плевать на них.
Теги:
joomla
.htaccess
mod-rewrite

1 ответ

2
Лучший ответ

Bette вместо переменной THE_REQUEST и обязательно сохраните это правило в качестве первого правила:

RewriteCond %{THE_REQUEST} /index\.php\?agent=(\w+)
RewriteRule ^ /quote/?agent=%1 [R=301,L]

THE_REQUEST представляет собой исходный запрос, полученный Apache из вашего браузера, и он не перезаписывается после выполнения некоторых правил перезаписи.

  • 0
    Так близко. Это работало, но теперь все изображения и JS были добавлены / quote / впереди, так что они были странными. RewriteCond %{THE_REQUEST} /index.php\.php\?agent=(\w+)&? RewriteRule ^ /quote/?agent=%1 [R=301,L]
  • 0
    Я добавил RewriteCond %{REQUEST_FILENAME} !-f и RewriteCond %{REQUEST_FILENAME} !-d Мышление, которое может помочь, но на самом деле правило вообще не работает.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню