@ygen

Как настроить переадресацию .htaccess с ЧПУ?

Здравствуйте.
Не подскажите, есть строка вида:

RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9_-]*)/?([0-9]*)/?([a-zA-Z0-9:;_-]*)/?$ /index.php?action=$1&param=$2&page_num=$3&option=$4

Но при обращении по www адрес становится вида:
https://site.ru//index.php/product-name/?action=ca...

При обращении к сайту всё нормально:
https://site.ru/catalog/product-name/

Можете помочь решить проблему? Спасибо.

Сам файл:

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R=301,L]
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
RewriteRule ^([a-zA-Z0-9_-]+)/?([a-zA-Z0-9_-]*)/?([0-9]*)/?([a-zA-Z0-9:;_-]*)/?$ /index.php?action=$1&param=$2&page_num=$3&option=$4
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
Во-первых, вот в этой строке, судя по всему, ошибка: RewriteCond %{HTTPS} on
Должно быть RewriteCond %{HTTPS} !on (с восклицательным знаком), иначе я не понимаю смысл этой переадресации - это должна быть проверка на подключение по http (отсутствие https в УРЛе).

Кроме того, проверьте как будет работать, если заменить вот эти строки
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
на
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

Это переадресация на УРЛ без "www.".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы