Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Tipusha

Recommended Posts

Нужно сделать редирект из 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 . Выкладываю его сюда, может кто поможет ? 

Надіслати
Поділитися на інших сайтах


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]
Надіслати
Поділитися на інших сайтах


# 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]

 

====

 

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

Надіслати
Поділитися на інших сайтах


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

 

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

 

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

Надіслати
Поділитися на інших сайтах

В 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. При чём, речь идёт о том, что большинство вообще его не понимают и тупо копипастят найденные строки куда попало и в результате правки либо просто не работают, либо вообще приводят к различным ошибкам (типа бесконечных редиректов и т.д.).

Надіслати
Поділитися на інших сайтах


Dotrox

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

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

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

Надіслати
Поділитися на інших сайтах

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 встречается не реже, но это не повод обвинять язык, он не виноват, что так привлекает гавнокодеров.

Надіслати
Поділитися на інших сайтах


Только что, Dotrox сказал:

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

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

 

Цитата

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

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

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

Надіслати
Поділитися на інших сайтах

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

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

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

 

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

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

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

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

Надіслати
Поділитися на інших сайтах


  • 3 months later...

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

Змінено користувачем finepekin
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.