X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> 301 редирект, не работает как должен.
CtFelix
CtFelix
Topic Starter сообщение 18.9.2013, 17:45; Ответить: CtFelix
Сообщение #1


Участник
***

Группа: User
Сообщений: 125
Регистрация: 3.1.2012
Поблагодарили: 16 раз
Репутация:   2  


Добрый день, товарищи!

Вопрос у меня такой по 301 редиректу.
Сейчас переделываю сайт на новый дизайн и структуру и вынужден прибегнуть к 301 редиректу, но появиться такая проблема, в старой структуре было по 4-10 страниц с информацией, сейчас я всё свожу в 1 страницу и приходится делать редирек с указанием каждой страницы.
Redirect 301 /15/15_1/page/1/ http://site.ru/komedy/
Redirect 301 /15/15_1/page/2/ http://site.ru/komedy/
Redirect 301 /15/15_1/page/3/ http://site.ru/komedy/
Redirect 301 /15/15_1/page/4/ http://site.ru/komedy/
Redirect 301 /15/15_1/page/5/ http://site.ru/komedy/
Всё бы ничего да только если пользователь заходит на страницу http://site.ru/15/15_1/page/3/ то редиректом его перенаправляет на страницу http://site.ru/komedy/page/3/, которой не существует.
Приходится делать дополнительные редиректы
Redirect 301 /komedy/page/2/ http://site.ru/komedy/
Redirect 301 /komedy/page/3/ http://site.ru/komedy/
Redirect 301 /komedy/page/4/ http://site.ru/komedy/
Redirect 301 /komedy/page/5/ http://site.ru/komedy/
Что весьма не удобно, кроме этого если получается так, что вся информация не помещается на 1 страницу и появляется вторая страница с 2 новостями, приходится убирать этот редирект Redirect 301 /komedy/page/2/ http://site.ru/komedy/ и в итоге пользователь обратившийся к странице http://site.ru/15/15_1/page/2/ перенаправляется http://site.ru/komedy/page/2/ увидев, что там всего 2 новости сразу уходит, а это очень плохо.

Как мне уменьшить количество редиректов и размер файл .htaccess по тому, что таких редиректов у меня с 50 категорий по 5-10 страниц в каждой категорий из за этого файл .htaccess очень раздут.

CMS Dle

Всем буду очень благодарен за помощь.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
psk89
psk89
сообщение 18.9.2013, 18:40; Ответить: psk89
Сообщение #2


ООООО... я сменил аватар
******


Группа: Active User
Сообщений: 1465
Регистрация: 16.9.2011
Из: Питер
Поблагодарили: 868 раз
Репутация:   116  


CtFelix, проверьте правила RewriteRule... у вас редиректит только урлы категорий а материалы перепрописываются скорее всего через RewriteRule - соответственно и получается что одно на другое накладывается.

либо выкладывайте код сюда, либо разбирайтесь самостоятельно - уверен проблема в этом.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
CtFelix
CtFelix
Topic Starter сообщение 18.9.2013, 20:09; Ответить: CtFelix
Сообщение #3


Участник
***

Группа: User
Сообщений: 125
Регистрация: 3.1.2012
Поблагодарили: 16 раз
Репутация:   2  


Вот выкладываю файл, удалил часть редиректов, оставил только редирект с 2 категорий, чтобы было от чего плясать.
Развернуть/Свернуть
#php_value register_globals Off
DirectoryIndex index.php

RewriteEngine On

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteCond %{REQUEST_URI} !.xml$
RewriteRule (.+) $1/ [R=301,L]

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.site1\.ru [NC]
RewriteRule ^(.*)$ http://site1.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site1.ru/ [R=301,L]

Redirect 301 /newkomeby.html http://site1.ru/komedy/
Redirect 301 /15/15_1/ http://site1.ru/komedy/
Redirect 301 /15/15_1/page/1/ http://site1.ru/komedy/
Redirect 301 /15/15_1/page/2/ http://site1.ru/komedy/
Redirect 301 /15/15_1/page/3/ http://site1.ru/komedy/
Redirect 301 /15/15_1/page/4/ http://site1.ru/komedy/
Redirect 301 /15/15_1/page/5/ http://site1.ru/komedy/
Redirect 301 /komedy/page/2/ http://site1.ru/komedy/
Redirect 301 /komedy/page/3/ http://site1.ru/komedy/
Redirect 301 /komedy/page/4/ http://site1.ru/komedy/
Redirect 301 /komedy/page/5/ http://site1.ru/komedy/
Redirect 301 /komedy/?do=cat&category=komedy&cstart=3 http://site1.ru/komedy/
Redirect 301 /komedy/?do=cat&category=15/15_1/ http://site1.ru/komedy/
Redirect 301 /komedy/?do=static&page=newkomeby http://site1.ru/komedy/

Redirect 301 /15/15_3/ http://site1.ru/horror/
Redirect 301 /15/15_3/page/1/ http://site1.ru/horror/
Redirect 301 /15/15_3/page/2/ http://site1.ru/horror/
Redirect 301 /15/15_3/page/3/ http://site1.ru/horror/
Redirect 301 /horror/page/2/ http://site1.ru/horror/
Redirect 301 /horror/page/3/ http://site1.ru/horror/

RewriteCond %{QUERY_STRING} ^do=cat&category=(.+)/?
RewriteRule ^([^.]+)$ /$1? [R=301,L]
RewriteCond %{QUERY_STRING} ^do=static&page=(.+)/?
RewriteRule ^([^.]+)$ /$1? [R=301,L]

# Редиректы
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

# Сам пост
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3&seourl=$5&seocat=$1 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3&seourl=$4&seocat=$1 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2&seourl=$4 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1&seourl=$3 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2&seourl=$3 [L]
RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1&seourl=$2 [L]

# За день
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]
# За весь месяц
RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]
# Вывод за весь год
RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]
# вывод отдельному тегу
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]
# поиск по доп полям
RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
# вывод для отдельного юзера
RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]
RewriteRule ^user/([^/]*)/page/([0-9]+)(/?)+$ index.php?subaction=userinfo&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]
# вывод всех последних новостей
RewriteRule ^lastnews(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]
# вывод в виде каталога
RewriteRule ^catalog/([^/]*)/rss.xml$ engine/rss.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]
# вывод непрочитанных статей
RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]
RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]
# вывод избранных статей
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

RewriteRule ^rules.html$ index.php?do=rules [L]
RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^rss.xml$ engine/rss.php [L]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1 [L]
RewriteRule ^print:([^/]+).html$ engine/print.php?do=static&page=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
CtFelix
CtFelix
Topic Starter сообщение 20.9.2013, 11:16; Ответить: CtFelix
Сообщение #4


Участник
***

Группа: User
Сообщений: 125
Регистрация: 3.1.2012
Поблагодарили: 16 раз
Репутация:   2  


Неужели никто не поможет?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
psk89
psk89
сообщение 20.9.2013, 11:49; Ответить: psk89
Сообщение #5


ООООО... я сменил аватар
******


Группа: Active User
Сообщений: 1465
Регистрация: 16.9.2011
Из: Питер
Поблагодарили: 868 раз
Репутация:   116  


Если честно, много букв, поэтому предложу самое простое решение. Переделать Redirect.

Делай такого вида.

RewriteRule /15/15_1/page/1/ /komedy/ [R=301,L]

Так должно работать.

Только вставляй пониже, желательно в самый низ, после вот этого места RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L].


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
CtFelix
CtFelix
Topic Starter сообщение 20.9.2013, 19:30; Ответить: CtFelix
Сообщение #6


Участник
***

Группа: User
Сообщений: 125
Регистрация: 3.1.2012
Поблагодарили: 16 раз
Репутация:   2  


psk89,
не работает, вообще редиректа не происходит.

Сообщение отредактировал CtFelix - 20.9.2013, 19:30
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
merlin
merlin
сообщение 20.9.2013, 22:50; Ответить: merlin
Сообщение #7


Бывалый
****

Группа: User
Сообщений: 366
Регистрация: 30.6.2010
Из: Россия, Орел
Поблагодарили: 52 раза
Репутация:   4  


Используйте RedirectMatch для создания регулярных выражений. Что-то типа:
RedirectMatch /15/15_1/page/([\S]+)$ http://site1.ru/komedy/

Если конкретно на одну страницу надо все переправить.
Но какие конкретно символы прописывать не знаю, так как, честно говоря, не пользовался этим.
Могу посоветовать только спросить тут - http://habrahabr.ru/qa/12039/

Сообщение отредактировал merlin - 20.9.2013, 22:59


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
CtFelix
CtFelix
Topic Starter сообщение 21.9.2013, 14:47; Ответить: CtFelix
Сообщение #8


Участник
***

Группа: User
Сообщений: 125
Регистрация: 3.1.2012
Поблагодарили: 16 раз
Репутация:   2  


merlin,
Очень жаль, но тоже не работает, те варианты, что на хабре тоже не хотят работать sad.gif
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
CtFelix
CtFelix
Topic Starter сообщение 23.9.2013, 12:44; Ответить: CtFelix
Сообщение #9


Участник
***

Группа: User
Сообщений: 125
Регистрация: 3.1.2012
Поблагодарили: 16 раз
Репутация:   2  


Идей больше не у кого нет?

Всем спасибо! Решение найдено! Тему можно закрывать!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Черный список обменников и как безопасно обменять валюту
137 Kurses 29469 Вчера, 17:24
автор: jack
Горячая тема (нет новых ответов) Как заработать новичку?
101 Emeralda 17376 Вчера, 16:18
автор: seoprogoni
Открытая тема (нет новых ответов) Как мошенники зарабатывают на прямых трансляциях в Instagram
Не ждите порно в инстаграм, его нет
1 PostBrigada 332 Вчера, 15:54
автор: Pingunio
Открытая тема (нет новых ответов) Как включить автоматическое обновление для плагинов WordPress и самого движка?
0 Telnor 334 Вчера, 13:27
автор: Telnor
Открытая тема (нет новых ответов) А как вы монетизируете свой ресурс?
Какие способы используете?
9 Retyk 1326 9.12.2017, 12:49
автор: rogefer


 



RSS Текстовая версия Сейчас: 11.12.2017, 10:25
Дизайн