Как сделать редирект (301, 302). Общая тема

Marduk
На сайте с 21.07.2008
Offline
110
#291

Парни, можно оживить темку?

У себя на сайте в htaccess использую такие директивы:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP:SSL} !=1 [NC]

RewriteRule ^(.*) https://mysite.com/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^www\.(.*)$

RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

Т.н. первая часть - это редирект с http на https, вторая - на домен без www (основной домен).

Является ли это правильным, что Rewrite повторяется два раза? Возможно это более правильно как-то объединить в одну директиву, совместить?

Если да, то подскажите как... Спс.

redeyer
На сайте с 27.01.2010
Offline
102
#292

Только так. Сначала на https, потом на www. Иначе будут циклически переадресации или еще какая-нибудь ерунда.

Единственное, можно написать редирект без привязки к домену, но это уже просто вопрос универсальности и красивостей. Работать оно будет точно так же как и ваш вариант


RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Услуги сисадмина. Настройка и оптимизация VPS https://searchengines.guru/ru/forum/928318 . Поднятие своих прокси, восстановление сайтов из вебархива. Мой канал о хостингах https://t.me/hostingexpert
MU
На сайте с 01.10.2013
Offline
43
#293
Marduk:
Парни, можно оживить темку?
Т.н. первая часть - это редирект с http на https, вторая - на домен без www (основной домен).
Является ли это правильным, что Rewrite повторяется два раза? Возможно это более правильно как-то объединить в одну директиву, совместить?
Если да, то подскажите как... Спс.

Объединить можно с помощью [OR]

Но объективных причин делать это нет.

Хостинг на SSD от 49 руб./мес. (http://mne.ru/services/virt_hosting.shtml) + бесплатный SSL VPS/VDS на SSD в России от 75 руб./мес. (http://mne.ru/services/vps.shtml) Скидка 10% на хостинг и VPS по промокоду — SEARCHENGINES
Marduk
На сайте с 21.07.2008
Offline
110
#294

Понял, спс

paradoks1k
На сайте с 30.10.2009
Offline
100
#295

Две проблемки, помогите решить пожалуйста.

На Joomla, благодаря поиску по гуглу, сделал редирект с www на без www для абсолютно всех страниц. Также убрал дубль index.php для главной.

Итак, какие же проблемы остались?

Проблема №1: Страницы категорий и товаров заканчиваются на .html, но проблема в том, что если убрать .html, они также будут доступны. Также если .html заменить на слеш.

Проблема №2: Главная теперь доступна по site.ru/glavnaya.html, site.ru/glavnaya и site.ru/glavnaya/

Мнение — самый дешёвый в мире товар. Спросите любого, и он подарит вам целый букет.
V3
На сайте с 02.08.2016
Offline
1
#296

Всем Бдоброго!

Прошу вашей помощи. Столкнулся с одним магазином WP Woocommerce с проблемой по переводу ссылок сайт из "плохих" в ЧПУ. Идея в следующем: перевести все "плохие" ссылки в ЧПУ при этом не потерять поисковые выдачи (страницы в индексе), а плавно их перевести в ЧПУ с заменой "плохих" на "ЧПУ". Проблема не новая и я знаю что это делается посредством редиректов в ЧПУ вид и потом в WP включается ЧПУ. Но все бы было хорошо, если бы не проблема с редиректом ссылок для категорий-подкатегорий. WP при включении ЧПУ делает иерархическую ЧПУ цепочку вида: www.site/product-category/parent_category/, потом - www.site/product-category/parent_category/sub_category/ и т.д. Пример "плохих" ссылок которые необходимо отредиректить вот такого вида: 'www.site.com/?product_cat=bukety' или 'www.site.com/?product_cat=101-roza' (где категория "101-roza" является дочерней по отношению к категории "bukety"). Т.е. в ссылке после '?product_cat=' присутствует родительская категория (parent_category) если переход осуществляется в нее саму или дочерняя категория (sub_category) если переход осуществляется в дочернюю категорию соответственно и т.д.

Посему, необходимо сделать редирект так, что бы с ссылки главной категории 'www.site.com/?product_cat=bukety' осуществлялся переход на 'www.site/product-category/bukety/', а с ссылки дочерней категории 'www.site.com/?product_cat=101_roza' на - 'www.site/product-category/bukety/101-roza/' с учетом родительской и дочереней категорий.

Заранее благодарю всех за помощь!

A
На сайте с 06.08.2016
Offline
2
#297

Здравствуйте!

Подскажите, пожалуйста, как правильно настроить редирект с www на без www и с http на https.

Изначально было 2 редиректа подряд, в итоге последний работал только на главной странице. Потом нашла один (вроде как комплексный для обоих случаев) - не могу войти в админку (только через правку материалов)

M
На сайте с 04.12.2013
Offline
223
#298

Объедините два условия OR'ом:


RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]

И далее пишите ваш редирект.

---------- Добавлено 18.10.2016 в 23:48 ----------

P.S. В подстановке правила домен можете прописать так: %1

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
NV
На сайте с 30.10.2012
Offline
30
#299

Здравствуйте,

Подскажите, пожалуйста, как сделать редирект 301 через .htaccess для ссылок вида

http://site.ru/component/jshopping/product/view/123/725?Itemid=0

http://site.ru/test.html

Делаю так:

RewriteCond %{QUERY_STRING} ^_route_=component/jshopping/product/view/123/725?Itemid=0$
RewriteRule ^(.*)$ http://site.ru/test.html? [R=301,L]

Но не работает с ?Itemid=0. Без него перенаправляет на вторую ссылку.

[umka]
На сайте с 25.05.2008
Offline
456
#300

RewriteEngine on

RewriteCond %{QUERY_STRING} ^Itemid=0$

RewriteRule ^component/jshopping/product/view/123/725$ /test.html? [R=301,L]

Лог в помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий