>RewriteRule ^$ отлавливается то, что идет до "?", в данном случае ""
допетрил о чем мне хотел сказать Bitman, вам спасибо, ему мои извенения.
да - идеально, спасибо за решение и ликбез! И всем попытавшимся помочь тоже спасибо.
Тема закрыта.
вроде как L - это "последнее правило" в цепи условий с прерыванем дальнейшей обработки, но вроде в пределах сессии и после перенаправления на новый адрес все правила сначала будут применятся по новой к новому адресу, иначебы у меня не возникло рекурсии в правиле
ошибаюсь?
работают только эти варианты, но работают несколько нестабильно, я для теста написал так RewriteRule ^$ / , мол косячные урлы рулить на морду, но правило таким макаром уходит в рекурсию
(вариант с одной строкой тоже работает, но редиректит / на /index.php - то не айс)
для меня regexp не новое слово, но ^$ крышу сносит, поясните плиз как модреврайт применяет правило пустой строки к непустой строке да еще выцепляет то, что должно быть записано как (.*) ?
ну и собственно почему не возникает рекурсии в вашей первой паре? условие "vm=(.*)" должно сработать равно как для http://site/?vm= так и для http://site/index.php?vm= вроде как корректнее выглядит /\?vm= (русским языком: запрос без index.php)
Elmigo добавил 06.11.2011 в 20:16
подсекать надо, но не уверен на счет следующего утверждения, т.к. %{THE_REQUEST} содержит полную строку запроса, т.е. то что упало в лог, к примеру так "GET /index.php?vm=1 HTTP 1.1", наличие такой переменной теоретически как бы отменяет утверждение хотя бы для RewriteCond.