Как правильно настроить mod_rewrite?

Суть понятна: нужно привести все запросы к сайту вида /path/to/file.html в файл index.php с соответствующими GET-параметрами. В сети видел несколько вариантов решения, но не уверен, что использую правильный (например, не получается посмотреть карту кликов яндекс метрики из-за её гет-параметров)


Вот, что я использую:

RewriteRule ^([^/]*)\.html$ /index.php?query=$1 [L]

RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?query=$1&id=$2 [L]

RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /index.php?query=$1&id=$2microid=$3 [L]


Как сделать лучше?
  • Вопрос задан
  • 3711 просмотров
Решения вопроса 1
m00t
@m00t
Я бы на вашем месте сделал по-другому.
Парсил бы строку URI не в htaccess, а в index.php. А все запросы к несуществующим файлам передавал бы неизменными на index.php. Так делают во всех фреймворках сейчас. Тогда и _GET параметры все останутся, если надо. Пример htaccess (смотрите на последние три условия):
github.com/kohana/kohana/blob/3.0.x/example.htaccess
Потом его можно узнать в скрипте примерно так:
github.com/kohana/core/blob/3.0.x/classes/kohana/request.php#L239
и распарсить уже как надо на свои query, id и microid.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы