2015-08-03 4 views
1

мне нужно переписать URL из чего-то вродеHtaccess переписывает вызывая бесконечный редирект

/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

, так что вы не возражаете против выброса двух параметров из запроса? – RamRaider

+0

@RamRaider Нет, не заботьтесь о них. – Squeegy

ответ

2

Бетты к 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 ^/цитата /? Агент =% 1 [R = 301, L], ' – Squeegy

+0

Я добавил ' RewriteCond% {REQUEST_FILENAME}! -f' и 'RewriteCond% {REQUEST_FILENAME}! -d' Думаю, что это может помочь, но на самом деле это правило не работает вообще. – Squeegy

+0

ok css/js и т. Д. - это другая проблема из-за использования относительных ссылок. Чтобы исправить это, вы можете добавить это в раздел '' страницы вашей страницы: ''. – anubhava

Смежные вопросы