Настройка 301 редиректа

12
Д
На сайте с 15.08.2017
Offline
0
2985

Добрый день. Подскажите, незнающему, как правильно настроить редиректы.

Кусочек кода из .htaccess


# Begin - Custom redirects
Redirect 301 /katalog/spetsodezhda/ /product-category/spetsodezhda/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/ /product-category/spetsodezhda/spetsodezhda-letnyaya/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-vasilkovaya/ /product/kurtka-muzhskaya-letnyaya-universal-va/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/polukombinezon-muzhskoy-letniy-universal-vasilkovyiy/ /product/polukombinezon-muzhskoy-letniy-univ/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-seraya/ /product/kurtka-muzhskaya-letnyaya-universal-se/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-zelyonaya/ /product/kurtka-muzhskaja-letnjaja-universal-zeljonaja/
...

Проблема в том, что редирект, например со страницы:

/katalog/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-zelyonaya/

происходит на страниц:

/product-category/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-zelyonaya/

а не на ту, что прописана:

/product/kurtka-muzhskaja-letnjaja-universal-zeljonaja/

и эта проблема ведет на 404 ошибку. Как исправить эту проблему?

ecliptica
На сайте с 20.06.2017
Offline
30
#1

нужно обязательно указывать домен в адресации "куда".

---------- Добавлено 15.08.2017 в 12:54 ----------

http://cdn1.savepice.ru/uploads/2017/8/15/214cfb930aafb1db8ff5ff31608cf65a-full.png

---------- Добавлено 15.08.2017 в 12:54 ----------

Заказываю качественный копирайтинг здесь (http://advego.ru/10FGXzCAG4) и Вам советую.
Д
На сайте с 15.08.2017
Offline
0
#2
ecliptica:
нужно обязательно указывать домен в адресации "куда".

---------- Добавлено 15.08.2017 в 12:54 ----------

http://cdn1.savepice.ru/uploads/2017/8/15/214cfb930aafb1db8ff5ff31608cf65a-full.png

---------- Добавлено 15.08.2017 в 12:54 ----------

Я уже догадался, но все равно не работает, как надо. Вместо редиректа по конкретной ссылке происходит редирект на совсем другую страницу.

# Begin - Custom redirects

Redirect 301 /katalog/spetsodezhda/ http://test.beztruda.by/product-category/spetsodezhda/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-vasilkovaya/ http://test.beztruda.by/product/kurtka-muzhskaya-letnyaya-universal-va/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/polukombinezon-muzhskoy-letniy-universal-vasilkovyiy/ http://test.beztruda.by/product/polukombinezon-muzhskoy-letniy-univ/
Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-seraya/ http://test.beztruda.by/product/kurtka-muzhskaya-letnyaya-universal-se/

Опять же, из последнего примера с

http://test.beztruda.by/katalog/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-seraya/

происходит редирект на

http://test.beztruda.by/product-category/spetsodezhda/spetsodezhda-letnyaya/kurtka-muzhskaya-letnyaya-universal-seraya/

а должен быть на

http://test.beztruda.by/product/kurtka-muzhskaya-letnyaya-universal-se/

ecliptica
На сайте с 20.06.2017
Offline
30
#3
Ди:
Опять же, из последнего примера с
http://test.beztruda.by/katalog/spet...versal-seraya/

только что перешел и вот куда меня перекинуло:

Так что вроде все правильно работает. Попробуйте разные браузеры, почистите кэш.

Д
На сайте с 15.08.2017
Offline
0
#4

Спасибо! не думал, что кэш может влиять на редирект. Они, ведь, на серваке выполняются. Буду знать на будущее:)

---------- Добавлено 15.08.2017 в 14:29 ----------

До конца проблема не решилась. Но, зато, определил ее источник. Ошибки в редиректах возникают из - за того, что на более "старшие" страницы тоже настроены редиректы.

Redirect 301 /katalog/spetsodezhda/ http://test.beztruda.by/product-category/spetsodezhda/

Redirect 301 /katalog/spetsodezhda/spetsodezhda-letnyaya/ http://test.beztruda.by/product-category/spetsodezhda/spetsodezhda-letnyaya/

Если эти две строчки удалить, то на все товары в каталоге редиректы работают. Но нужно сделать так, чтобы работало все.

Суть в том, что каталог переезжает на плагин в рамках одного сайта.

Подскажите, пожалуйста, как это лучше всего реализовать?

S
На сайте с 30.09.2016
Offline
469
#5
Ди:
Если эти две строчки удалить, то на все товары в каталоге редиректы работают. Но нужно сделать так, чтобы работало все.

Их для этого не удалять надо, а переставить в конец - чем короче строка, тем дальше редирект. А вообще, у Вас там жуть какая-то. Наверняка через регулярку короче было бы.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
Д
На сайте с 15.08.2017
Offline
0
#6

Sitealert, Так и сделал, теперь редиректы по товарам и по разделам работают.

Только это не решение проблемы. Теперь любая вложенная страница, на которую не настроен редирект вообще открываться не будет.

Нашел тему с такой же проблемой, но решение не работает /ru/forum/608852

Может, я что-то не так написал?

RewriteRule ^katalog/spetsodezhda/$ http://test.beztruda.by/product-category/spetsodezhda/ [R=301,L]
ecliptica
На сайте с 20.06.2017
Offline
30
#7
Ди:
Теперь любая вложенная страница, на которую не настроен редирект вообще открываться не будет.

Это почему?

---------- Добавлено 16.08.2017 в 16:28 ----------

Вложенная где? В параметре "откуда" или в "куда"?

Д
На сайте с 15.08.2017
Offline
0
#8
ecliptica:
Это почему?

---------- Добавлено 16.08.2017 в 16:28 ----------

Вложенная где? В параметре "откуда" или в "куда"?

Это значит, что любая страница после katalog/spetsodezhda/ будет перенаправлятся. Пример:

В файле .htaccess есть такая строка:

Redirect 301 /katalog/spetsodezhda/ http://test.beztruda.by/product-category/spetsodezhda/

И если в строку браузера ввести запрос на вложенную страницу, например /katalog/spetsodezhda/primer, то произойдет редирект на /product-category/spetsodezhda/primer хотя на эту страницу никаких редиректов не прописано.

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

S
На сайте с 30.09.2016
Offline
469
#9
Ди:
но почему - не понятно.

Потому что что-нибудь не так делаете. Нюансов много, никто кроме Вас их пока не знает. И следующий раз создавайте темы в соответствующем разделе, а не там, где придётся. Если, конечно, хотите ответ получать быстрее.

Д
На сайте с 15.08.2017
Offline
0
#10

Sitealert, ну это понятно. Если бы делал все так, то все бы работало как надо. Извиняюсь, тему не нашел. Не думал, что она может быть в разделе "сайтостроительство" 😂

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

Вот полный .htaccess

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^katalog/spetsodezhda\$ http://test.beztruda.by/product-category/spetsodezhda/ [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# Begin - Custom redirects
12

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