- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
ребята, помогите правильно настроить редиректы в htaccess
Ситуация:
Мультимагазин 1 основной домейн и 3 аллиаса.
В результате надо чтобы были адреса с https без www
Сейчас у меня так, но все равно дубли ...
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.magazin111\.ru [NC]
RewriteRule ^(.*)$ https://magazin111 .ru/$1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^www\.magazin222 \.ru [NC]
RewriteRule ^(.*)$ https://magazin222 .ru/$1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^www\.magazin333 \.ru [NC]
RewriteRule ^(.*)$ https://magazin333.ru/$1 [L,R=301,NC]
RewriteCond %{HTTP_HOST} ^www\.magazin444 \.ru [NC]
RewriteRule ^(.*)$ https://magazin444.ru/$1 [L,R=301,NC]
RewriteBase /
Помогите пожалуйста настроить верно...
Сейчас у меня так, но все равно дубли ...
Какие дубли? С http (без s)?
В остальном все правильно, кроме того что это можно сделать одним общим или частным правилом и что при использовании частных правил в конце регулярного выражения для имени хоста лучше поставить знак доллара. Также лучше это делать в рамках специального хоста, а не основного.
NC в RewriteRule не нужен.
Помогите пожалуйста настроить верно
Зависит от сервера. Если я правильно понял насчёт дублей.
Какие дубли? С http (без s)?
В остальном все правильно, кроме того что это можно сделать одним общим или частным правилом и что при использовании частных правил в конце регулярного выражения для имени хоста лучше поставить знак доллара. Также лучше это делать в рамках специального хоста, а не основного.
NC в RewriteRule не нужен.
Что набираю. > что плохо получаю:
http://magazin.ru/ > http://magazin.ru/
https://www. magazin.ru / > https://www. magazin.ru /
Какие дубли? С http (без s)?
В остальном все правильно, кроме того что это можно сделать одним общим или частным правилом и что при использовании частных правил в конце регулярного выражения для имени хоста лучше поставить знак доллара. Также лучше это делать в рамках специального хоста, а не основного.
NC в RewriteRule не нужен.
Может можете конкретно в примере показать как это "в рамках специального хоста" ... (если бы я знал что это значит, я бы не просил:)))
Буду очень благодарен Вам.
ОГРОМНОЕ СПАСИБО ЗА РЕШЕНИЕ ЗАДАЧИ .. ЧЕЛОВЕКУ С НИКОМ "DOTROX" (на других ресурсах)
Если у кого похожая проблема с редиректами, выкладываю решение которое мне помогло:
ОГРОМНОЕ СПАСИБО ЗА РЕШЕНИЕ ЗАДАЧИ .. ЧЕЛОВЕКУ С НИКОМ "DOTROX" (на других ресурсах)
Если у кого похожая проблема с редиректами, выкладываю решение которое мне помогло:
# Вместо захватывания маски в RewriteRule используйте переменную %{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(?>.*)$ https://%1%{REQUEST_URI} [L,R=301,L]
# Здесь набор условий RewriteCond, как выше уже указали, зависит от хостера. Для Джино, например, так:
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule ^(?>.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
В RewriteRule указывайте незахватывающую маску для всей строки. В адресе для перенаправления лучше использовать %{SERVER_NAME}, а не %{HTTP_HOST}.
Вместо захватывания маски в RewriteRule используйте переменную %{REQUEST_URI}
Чем это лучше?
%{SERVER_NAME}
Чем это лучше?
Будет ли сюда подставляться имя хоста из запроса, если автор использует один виртуальный хост с алиасами?1. Хоть и на спичках, но экономия.
2. Не заметил, что у него "1 основной домейн и 3 аллиаса". Тогда HTTP_HOST.
3. И у меня выше опечатка вышла (без очков уже плохо читается)
RewriteRule ^(?>.*)$ https://%1%{REQUEST_URI} [L,R=301,L]
Лишнюю L поставил.
1. Хоть и на спичках, но экономия.
Ну если экономить, то из шаблона ^(?>.*)$ можно всё выкинуть и оставить только ^
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
По поводу %{SERVER_NAME} в документации сказано, что подставляться имя хоста из запроса будет если в настройках отключить UseCanonicalName.
https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritecond
SERVER_NAME and SERVER_PORT depend on the values of UseCanonicalName and UseCanonicalPhysicalPort respectively.