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

J
На сайте с 20.02.2014
Offline
120
jkm
#541
Pingy:
Почему первое правило не отрабатывает на запросах к site.ru/index.php?

https://habrahabr.ru/company/sprinthost/blog/129560/


Первому RewriteRule передается путь от того места, где находится .htaccess, до запрошенного файла. Эта строка никогда не начинается со "/". Последующим RewriteRule передается результат предыдущих преобразований.


RewriteCond %{REQUEST_URI} ^(.*/)index\.(php|html?)$
RewriteRule ^ %1 [R=301,L]

Или так


RewriteRule ^(.*/)?index\.(php|html?)$ /$1 [R=301,L]
J
На сайте с 20.02.2014
Offline
120
jkm
#542

Вероятно, поставили редирект после подобной конструкции:


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

Нужно просто перенести редирект повыше.

С9
На сайте с 21.09.2017
Offline
0
#543

Подскажите пожалуйста.

Был сделан 301 редирект со страницы 1 на страницу 2, теперь появилась необходимость изменить URL страницы 2 (на которую делался редирект). С какого url делать редирект на стр 3 с страницы 1 или 2?

SeVlad
На сайте с 03.11.2008
Offline
1609
#544
Сергей9000:
Был сделан 301 редирект со страницы 1 на страницу 2, теперь появилась необходимость изменить URL страницы 2 (на которую делался редирект). С какого url делать редирект на стр 3 с страницы 1 или 2?

Лучше с обоих. И с 1 и с 2. Но можно только с 2, если общее кол-во редиректов не превышает 5 (точно не помню цифру)

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
dotern
На сайте с 21.09.2016
Offline
123
#545

Проконсультируйте по редиректу на мобильной версии сайта.

Сейчас стоит вот это:

RewriteCond %{HTTP_USER_AGENT} !Windows\ NT.+Touch [NC]

RewriteCond %{HTTP_USER_AGENT} Windows\ NT\ 6|Macintosh|Ubuntu|Linux\ (x86_64|i686)|CrOS [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=302]

Но вчера случайно обнаружил, что 10 винда не редиректится, подставил цифру "10", проблему решил.

Хотел бы дополнить список всем возможным. Гугл не помог. Может, кто поделиться актуальными настройками?

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

nikonlay
На сайте с 11.12.2006
Offline
176
#546

Доброго дня! Решил тут почистить дубли страниц на сайте, смотрю один из способов - сделать редирект.

Поискал в интернете, нашел 2 способа через htaccess, но ни один у меня почему-то не работает.

Хочу переадресовать пустую страницу форума /theforumaddcoms.php?cat_id=6&forum_id=21&post_id=160&upforum_id=0

на главную http://www.site.ru/

Первый способ:

Redirect 301 /theforumaddcoms.php?cat_id=6&forum_id=21&post_id=160&upforum_id=0 http://www.site.ru/

И второй:

RewriteCond %{REQUEST_URI} ^/theforumaddcoms\.php?cat_id=6&forum_id=21&post_id=160&upforum_id=0$

RewriteRule ^.*$ http://www.site.ru/? [R=301,L]

Как и написал выше, ни один из способов не работает. Подскажите, пожалуйста - почему? Может, у меня что-то неправильно настроено или запись ошибочная?

И, это уже вторичный вопрос, но на всякий случай - а какой из этих способов лучше?

Мощные фонари и бинокли: https://market.yandex.ru/store--volny-i-veter?businessId=79203856
GU
На сайте с 26.10.2011
Offline
74
#547

Приветствую всех.

Вопрос из ряда 1 класса для местных гуру. Но для меня он академический

Когда то делал ресурс и в .htaccess прописал 301 редирект с http на https

Все работало отлично. Теперь вот решил вернуть обратно http, не получается снять редирект. Сайт на голом ХТМЛ.

Сейчас в .htaccess прописано так;

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteRule ^index.html$ / [R=301,L]
ErrorDocument 404 /404.html
ErrorDocument 403 /404.html
ErrorDocument 402 /404.html
ErrorDocument 401 /404.html
ErrorDocument 500 /404.html
AddHandler application/x-httpd-php .php .htm .html .phtml

если убираю строчки

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteRule ^index.html$ / [R=301,L]

то ни чего не меняется

Если меня написанное выше на

RewriteCond %{SERVER_PORT} =443
RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [L]

то получается циклическая переадресация.

Я так понимаю значит редирект устанавливал не там. (а где еще его можно поставить?)

В какой то момент после гугления получилось сделать так что ресурс стал доступен и на HTTP и на HTTPS. Но блин, удалил этот код из .htaccess и теперь найти его не могу.

Может кто подскажет как снять редирект? Ресурс на отдельном сервере. Панель управления ISPmanager Lite 5.123.2

В какой стороне копать?

Партнерка для юридических, туристических, кредитных и др. сайтов (http://goo.gl/ZntVAv)
S
На сайте с 30.09.2016
Offline
469
#548
nikonlay:
И, это уже вторичный вопрос, но на всякий случай - а какой из этих способов лучше?

На всякий случай, это не тот вопрос, потому что лучше третий способ - тот, в котором используется QUERY_STRING.:)

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
BrightGuy
На сайте с 03.10.2010
Offline
179
#549

Помогите сделать редирект с адресов вида site.ru/user/любые_символы на главную страницу. Спасибо!

-= Сайты на заказ | Правки, обновление, работы по DLE =- (/ru/forum/791118) Skype: rus.shevchuk (skype:rus.shevchuk?chat) | Telegram: @ruslansh (tg://resolve?domain=ruslansh) | ICQ: 606535768 | info@ruslan-shevchuk.com
A
На сайте с 21.04.2008
Offline
71
#550
nikonlay:


Первый способ:
Redirect 301 /theforumaddcoms.php?cat_id=6&forum_id=21&post_id=160&upforum_id=0 http://www.site.ru/

День добрый!

Тоже интересует как сделать редирект со страницы с GET-параметрами на страницу без параметров, вот так:

со страницы: http://domain.ru/dictionary/?id=1

на страницу: http://domain.ru/slovar/en/a/accounts-receivable-insurance/

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