Tipusha

301 редирект не работает в подкатегориях

Рекомендуемые сообщения

Tipusha    0

Нужно сделать редирект из https://voda-v-dom.com.ua/armatura-dly-topochnuh/nasosi/ в https://voda-v-dom.com.ua/nasosy/cirkulyacionnue-nasou/ . Пробовал всеми способами описанными на форуме -  не работает (естественно при этом очищал кеш ВКмод, кеш в систем, открывал в инкогнито). Пробовал и короткую конструкцию и вот такую 

 
RewriteCond %{REQUEST_URI} ^armatura-dly-topochnuh/nasosi.html$

 

. Подозреваю что проблема в самом .htaccess . Выкладываю его сюда, может кто поможет ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    398

проблема в том что htaccess не надо трогать для внутрисистемных редиректов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Tipusha    0

Подскажите тогда пожалуйста каким образом сделать такой редирект ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    330
RewriteCond %{REQUEST_URI} ^armatura-dly-topochnuh/nasosi.html$

RewriteRule ^.*$ https://voda-v-dom.c...cionnue-nasou/? [R=301,L]

Эти редиректы так не делаются.

 

Должно быть так:

RewriteRule ^armatura-dly-topochnuh/nasosi/(.*)$ /nasosy/cirkulyacionnue-nasou/$1 [L,R=301]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Tipusha    0

 

Эти редиректы так не делаются.

 

Должно быть так:

RewriteRule ^armatura-dly-topochnuh/nasosi/(.*)$ /nasosy/cirkulyacionnue-nasou/$1 [L,R=301]

 

Вписал эту строчку. Не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    330

Вписал эту строчку. Не работает

А вы её куда именно вписали? Порядок директив в .htaccess имеет не меньшее значение, чем их содержимое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Tipusha    0
# 1.To use URL Alias you need to be running apache with mod_rewrite enabled. 

 

# 2. In your opencart directory rename htaccess.txt to .htaccess.

 

# For any support issues please visit: http://www.opencart.com

 

Options +FollowSymlinks

 

# Prevent Directoy listing 

Options -Indexes

 

# Prevent Direct Access to files

<FilesMatch "\.(tpl|ini|log)">

 Order deny,allow

 Deny from all

</FilesMatch>

 

# SEO URL Settings

RewriteEngine On

# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ 

RewriteBase /

 

RewriteRule ^download/(.*) /index.php?route=error/not_found [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

RewriteRule ^armatura-dly-topochnuh/nasosi/(.*)$ /nasosy/cirkulyacionnue-nasou/$1 [L,R=301]

 

====

 

Вот так вписал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    398

@Tipusha, поставить менеджер редиректов

 

в htaccess делаются только глобальные вещи, вроде www или https

 

пихать туда что ни попадя не нужно, получите ошибки, задержки и прочее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Tipusha    0

http://clip2net.com/s/3Gu63fQ - установил менеджер редиректов. Сделал в нем. Всё равно не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    398

:-D в выключенном и не работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Tipusha    0

Пробовал разные положения галочек. Всё равно не работает (

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    330
В 17.01.2017 в 10:51, Tipusha сказал:

Вот так вписал

Ну, всё правильно - оно и не должно так работать.

В каждой теме с .htaccess приходиться повторять, что все правки должны быть до строки с

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

Иначе они работать не будут.

 

Редиректы надо размещать сразу после

RewriteBase /

Перенесите строку с редиректом и всё должно заработать.

 

В 17.01.2017 в 11:55, Otvet сказал:

в htaccess делаются только глобальные вещи, вроде www или https

пихать туда что ни попадя не нужно, получите ошибки, задержки и прочее

Откуда задержки?

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

 

Другой вопрос, что мало кто умеет работать с .htaccess. При чём, речь идёт о том, что большинство вообще его не понимают и тупо копипастят найденные строки куда попало и в результате правки либо просто не работают, либо вообще приводят к различным ошибкам (типа бесконечных редиректов и т.д.).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    398

Dotrox

в нужном месте в нужное время всё должно работать, например в 99% случаев редирект должен срабатывать когда страница не найдена

через htaccess апач будет чекать при каждом запросе, будь то сама страница или статика вроде css, картинок и т.д. а этого добра на страницу может быть больше сотни

ну и ошибки как можно видеть я указал в первую очередь, кривые директивы постоянно вижу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    330
1 час назад, Otvet сказал:

будь то сама страница или статика вроде css, картинок и т.д.

Какая ещё статика?! На любом шареде статика на nginx.

Кроме того, для 404 (и других ошибок) в Apache есть ErrorDocument. Но он срабатывает только для несуществующих файлов, а если речь идёт про несуществующую страницу в ОК, то о редиректах в Apache нет смысла говорить, потому что уже сработала строка с

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

и дальше в любом случае обработка идёт уже средствами ОК.

То есть, если говорить о несуществующей странице (и заранее не было известно, что она не существует), то редирект через Apache просто не получится сделать!

А если заранее известно, что страница не существует, то подойдёт обычный редирект с RewriteRule и перебор правил редиректов через Apache в любом случае будет быстрее, чем передача запроса в php и проверки там, ибо Apache написан на C, так что любые задачи будет выполнять на несколько порядков быстрей программы написанной на интерпретируемом php. Плюс, опять же, экономия php воркеров, которые всегда лимитированы.

 

2 часа назад, Otvet сказал:

кривые директивы постоянно вижу

А это уже вопрос к тем, кто их пишет. Кривой код в php встречается не реже, но это не повод обвинять язык, он не виноват, что так привлекает гавнокодеров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Otvet    398
Только что, Dotrox сказал:

Какая ещё статика?! На любом шареде статика на nginx.

не на любом, часто ввиду гонок за попугаями в пейжспид отдают через апач

 

Цитата

если говорить о несуществующей странице (и заранее не было известно, что она не существует), то редирект через Apache просто не получится сделать!

я об этом и пишу, если страница "не найдена" и управление уходит в error/not_found то перед отдачей 404 прогоняем редиректы

это самый верный и не рисковый вариант

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    330
36 минут назад, Otvet сказал:

часто ввиду гонок за попугаями в пейжспид отдают через апач

Ну, это туда же, где кривые конфиги .htaccess и гавнокод - если кто-то что-то делает через жопу, то это проблема его жопы, а не инструментов, которые используются.

 

36 минут назад, Otvet сказал:

я об этом и пишу, если страница "не найдена" и управление уходит в error/not_found то перед отдачей 404 прогоняем редиректы

Ну, тут никто и не спорит, что если запрос уже перешёл в ОК, то редиректы надо делать там. По другому то всё равно не получится.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
finepekin    2

На всякий случай, здесь много способов настройки 301 редиректа под множество случаев. Самого полного руководства больше нигде не встречал http://q-seo.com.ua/blog/301-redirect/ . Может кому поможет, мне не раз помогало.

Изменено пользователем finepekin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу