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

tommy-gung
На сайте с 22.11.2006
Offline
299
#181

можно сделать любой редирект

Здесь не могла быть ваша реклама
ЛЪ
На сайте с 08.03.2016
Offline
1
#182
tommy-gung:
можно сделать любой редирект

Спасибо, за ответ, но как именно это сделать?

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

S2
На сайте с 30.12.2015
Offline
307
#183
ДШ
На сайте с 12.07.2006
Offline
77
#184

В поисковые системы стали попадать несуществующие страницы типа http://site.com/catalog/?p=123 . Параметры на сайте не используются в принципе. Подскажите, как лучше всего сделать редирект с $_SERVER['REQUEST_URI'] на $_SERVER['PHP_SELF'] (то есть просто выкидываем $_SERVER['QUERY_STRING'] )

InJournal (http://injournal.ru) | http://dshorin.com (http://dshorin.com)
SeVlad
На сайте с 03.11.2008
Offline
1609
#185
Дэн Шорин:
несуществующие страницы типа http://site.com/catalog/?p=123. Параметры на сайте не используются в принципе.

Если мои вангования верны и это ВП, то тут не редирект нужно не делать, а восстанавливать. У ВП он "включается" ядром при включении ЧПУ. Поломаться могли неправильными настройками плагинов или правкой хтацесса.

Если нет, то нужно знать не только точку отправления, но и точку приземления.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
ДШ
На сайте с 12.07.2006
Offline
77
#186
SeVlad:
Если мои вангования верны и это ВП, то тут не редирект нужно не делать, а восстанавливать. У ВП он "включается" ядром при включении ЧПУ. Поломаться могли неправильными настройками плагинов или правкой хтацесса.

Если нет, то нужно знать не только точку отправления, но и точку приземления.

Нет, это не ВП, рукописная админка. ВП был раньше, сайт был перенесен на более адекватную заданию админку, но старые внешние ссылки всплывают.

Задача состоит в том, чтобы отбросить параметры на всех возможных страницах. То есть чтобы со всех страниц типа http://site.com/catalog/?p=123 редиректило на http://site.com/catalog/

То есть меняем $_SERVER['REQUEST_URI'] на $_SERVER['PHP_SELF'] как я написал выше.

J
На сайте с 20.02.2014
Offline
120
jkm
#187
Дэн Шорин:
чтобы со всех страниц типа http://site.com/catalog/?p=123 редиректило на http://site.com/catalog/


RewriteCond %{THE_REQUEST} "^\S+ (/.*?\?)"
RewriteRule ^ %1 [R=301,L]
Samail
На сайте с 10.05.2007
Offline
369
#188

Мне нужно сделать редирект со страниц на старом движке на страницы на новом. В ссылках много get параметров которые идут в разном порядке и состав их тоже разный.

В новом движке урл страницы выглядит: new.site.ru/index.php/cat/1-название_раздела_1/123-название_организации_123

Сделал так:

.htaccess отправляет пользователя на php скрипт специально для редиректа сделаный, со всеми get параметрами.

RewriteCond %{THE_REQUEST} " /index.php\?(.*)option=com_sobi2(.*) "

RewriteRule ^ http://new.site.ru/redirekt/sobi.php [R=301,L]

Скрипт уже генерирует новую ссылку в зависимости от параметров.

$sobi2Id = $_GET['sobi2Id'];

$catid = $_GET['catid'];
$sobi2Task = $_GET['sobi2Task'];

if ($catid == 1) { $cat_name = '-cat-name-1'; }
if ($catid == 2) { $cat_name = '-cat-name-2'; }

if ($sobi2Task == 'sobi2Details') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://new.site.ru/index.php/cat/".$catid.$cat_name."/".$sobi2Id."");
exit();

Открывается страница new.site.ru/index.php/cat/1-название_раздела_1/123 (без названия организации). Для пользователя выглядит страница точно так-же как и с названием, но в коде есть

<link href="http://new.site.ru/index.php/cat/1-cat-name-1/123-org-name-123" rel="canonical" />

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

S
На сайте с 28.05.2016
Offline
0
#189

Чтобы перенаправить с "/index.php/" на "/" я пишу так:

RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]

RewriteCond %{REQUEST_URI} !/system/.* [NC]

RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

а удалять наименование организации, по-моему не стоит, т.к. поисковики больше любят ЧПУ

J
На сайте с 20.02.2014
Offline
120
jkm
#190


RewriteCond &%{QUERY_STRING} ^(?:&catid=(\d+)|&sobi2Id=(\d+)|&sobi2Task=sobi2Details()|&[^&]+)++\3
RewriteCond "%1 %2 \
1=-cat-name-1 \
2=-cat-name-2 \
" "^(\d+) (\d+) .*?\1=(\S+)"
RewriteRule ^ http://new.site.ru/index.php/cat/%1%3/%2? [R=301,L]

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