У меня есть сайт cms-driven, без возможности изменить код. То, что я хочу сделать, это создать дружественный URL-адрес, используя только apache mod-rewrite engine.Перенаправление в сочетании с условием перезаписи в htaccess
Проблема заключается в том, что я создаю бесконечный цикл, потому что сначала перенаправляю исходный url (index.php? Id = 21) на дружественный (/ friendly /), а затем переписываю часть «/ friendly» назад to 'id = 21'
Я знаю, что в этом случае должно быть дополнительное условие или параметр, чтобы избежать цикла, но я не могу получить одно из возможных решений для работы.
Here's код:
RewriteCond %{query_string} ^id=21$ [NC] RewriteRule /* /peuterspeelzaal? [R=301,L] RewriteRule ^peuterspeelzaal$ index.php?id=21 [L]
Я не знал о строке запроса, но, похоже, это работает. Просто из любопытства, что именно делает этот код работает, а мой нет? –
@Robbert van den Bogerd: Когда применяется правило, URI изменяется. Флаг * L * подразумевает перезапуск процесса перезаписи с новым URI. Это вызывает бесконечное перенаправление, поскольку оба правила создают новый URI, который принят другим правилом. – Gumbo