#htaccess #apache #mod_rewrite
Здравствуйте, подскажите как сделать ЧПУ через .htaccess или другим способом. На данный момент пытаюсь реализовать через .htaccess, но что-то не так. Ситуация такая что использую одну точку входа через index.php, может это как-то влияет. Вот .htaccess RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^([a-z]+)/([a-z]+)/$ ?country=$1®ion=$2&city=$3 [QSA,L] RewriteRule .* index.php [L]
Ответы
Ответ 1
Если у вас уже единая точка входа (это хорошо) и нет зависимости от .htaccess (это хорошо), то не надо добавлять зависимость от .htaccess и терять достоинства единой точки входа: весь роутинг в одном месте, независимость от сервера. Разбирайте ваш URL прямо в index.php. Подробнее: Как сделать всё и сразу в mod_rewrite? P. S. Не могу закрыть как дубликат вопрос под конкурсом. P. P. S. Уже ничего не помню про .htaccess, но в вашем коде, вроде, проблема в том, что все преобразования повешены на одно условие.Ответ 2
.htaccess проходится повторно, если были изменения строки запроса условиями. Осторожнее с .* иначе все запросы будут попадать именно туда. Можно использовать [END] для остановки повторного прохода. [L] останавливает парсинг, но не отменяет повторный проход
Комментариев нет:
Отправить комментарий