Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
1

Редирект статьи сгенерированной php

29.06.2017, 20:10. Показов 1365. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Возник такой вопрос.
После написания нового кода сайта изменились пути к некоторым статьям, но по ссылкам на них уже заходят много пользователей с поисковиков, которых не хочется терять.
Возможно ли сделать редиректы с этих страниц на новые? А со временем их совсем удалить?
Также изменилось название файла, который выводит статьи.
Было view_articles.php?id=1289, а стало view_articles_celebration.php?id=1289

Можно как-то склеить принудительно эти два файла на время? Чтобы пользователи сразу переходили к view_articles_celebration.php?id=1289
При чем очень нужно, чтобы склейка была не по всем статьям, там есть одинаковые Id, но разные статьи. А именно по отдельным статьям. Надеюсь нормально объяснила, чего хочу добиться в итоге

Нужно именно просто отдельные урлы склеить

Очень прошу помочь написать код на примере моих страниц. Многие советуют использовать 301 редирект, но у меня не получается, наверное из-за вот таких кусочков ?id=
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2017, 20:10
Ответы с готовыми решениями:

Статьи на php + css
Можете, очень срочно нужно, покажите пример вывода статей php+ html+ css пожайлуста

Как в php вывести ссылку на статьи по определенным категориям?
Есть учебный блог с разными статьями по категориям. Вот код вывода статей из одной категории...

php редирект
Добрый день, вот такой вопрос: авторизация построенна не на сессиях, как сделать проверку на...

Редирект статьи сгенерированной php
Здравствуйте! Возник такой вопрос. Есть база со статьями. После реорганизации разделов изменились...

20
25 / 25 / 11
Регистрация: 15.10.2009
Сообщений: 185
29.06.2017, 20:40 2
Цитата Сообщение от hitball Посмотреть сообщение
Возможно ли сделать редиректы с этих страниц на новые?
Обязательно ставьте 301 редирект. Это для seo.
PHP
1
2
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://site.ru/newpage");
Добавлено через 56 секунд
Цитата Сообщение от hitball Посмотреть сообщение
но у меня не получается
Что конкретно не получается?
1
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
29.06.2017, 21:05  [ТС] 3
вот так делала, не выходит
Redirect 301 /view_articles.php?id=1289 http://www.site.ru/view_articl... hp?id=1289
0
25 / 25 / 11
Регистрация: 15.10.2009
Сообщений: 185
29.06.2017, 21:07 4
редирект-то откуда, из php или htaccess?
1
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
29.06.2017, 21:13  [ТС] 5
пишу этот код в файле htaccess.
у меня есть около 20 статей, которые нужно так перенаправить с разными id в конце урла
0
25 / 25 / 11
Регистрация: 15.10.2009
Сообщений: 185
29.06.2017, 21:19 6
Попробуйте так

RewriteCond %{REQUEST_URI} /view_articles.php
RewriteRule ^(.*)$ http://www.site.ru/view_articles_celebration.php [R=301,L]
1
Заблокирован
29.06.2017, 22:12 7
hitball, было уже: Редирект статьи сгенерированной php

Проставляйте у «статьи» флаг, указывающий на необходимость делать редирект. Если статей немного и все они известны, можете прогонять входящий идентификатор через список идентификаторов, по которым нужно делать редирект.
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
29.06.2017, 22:13  [ТС] 8
проблема в том, что мне нужно не просто перенаправлять все статьи, а именно с определенными id, их всего 20-25 штук
К примеру
?id=1289
?id=76
?id=977
?id=876
....
0
25 / 25 / 11
Регистрация: 15.10.2009
Сообщений: 185
29.06.2017, 22:19 9
RewriteCond %{REQUEST_URI} /view_articles.php
RewriteCond %{QUERY_STRING} ^id=1289
RewriteCond %{QUERY_STRING} ^id=1290
RewriteCond %{QUERY_STRING} ^id=1291
RewriteCond %{QUERY_STRING} ^id=1292
RewriteRule ^(.*)$ http://www.site.ru/view_articles_celebration.php [R=301,L]
1
Заблокирован
29.06.2017, 22:26 10
Это и называется списком Программно – массив. В регулярке условия mod_rewrite – (1289|76|и т.д.).
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
30.06.2017, 09:03  [ТС] 11
добавила эти строки в htaccess, но страница по прежнему открывается в старом урл.

Добавлено через 26 минут
это слишком сложно для меня

Добавлено через 10 часов 7 минут
Как думаете, почему не получается переадресовать?
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
03.07.2017, 14:13  [ТС] 12
сейчас мой файл htaccess выглядит так. проверьте, пожалуйста, все ли правильно. не вижу причины, почему не выходит(((
HTML5
1
2
3
4
5
6
7
8
9
10
11
DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
ErrorDocument 404 http://site.ru/404.html
ErrorDocument 500 http://site.ru/500.html
RewriteCond %{REQUEST_URI} /view_articles.php
RewriteCond %{QUERY_STRING} ^id=1289
RewriteCond %{QUERY_STRING} ^id=1290
RewriteCond %{QUERY_STRING} ^id=1291
RewriteCond %{QUERY_STRING} ^id=1292
RewriteRule ^(.*)$ http://site.ru/view_article_celebration.php [R=301,L]
0
25 / 25 / 11
Регистрация: 15.10.2009
Сообщений: 185
03.07.2017, 23:41 13
попробуйте так

DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
ErrorDocument 404 http://site.ru/404.html
ErrorDocument 500 http://site.ru/500.html
RewriteEngine On
RewriteCond %{QUERY_STRING} id=1289
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]
RewriteCond %{QUERY_STRING} id=1290
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]
RewriteCond %{QUERY_STRING} id=1291
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]
RewriteCond %{QUERY_STRING} id=1292
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]
1
Заблокирован
04.07.2017, 07:53 14
Есть OR-флаг. Также можно использовать список в единственном условии, о чем я выше писал.
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
04.07.2017, 10:14  [ТС] 15
Перенаправляет!!!!!!! Ура!!!!!!!!!!!! Но выдает ошибку(
HTML5
1
2
3
4
Страница недоступна
Сайт выполнил переадресацию слишком много раз.
Удалите файлы cookie..
ERR_TOO_MANY_REDIRECTS
0
25 / 25 / 11
Регистрация: 15.10.2009
Сообщений: 185
05.07.2017, 20:44 16
Лучший ответ Сообщение было отмечено hitball как решение

Решение

Цитата Сообщение от hitball Посмотреть сообщение
Перенаправляет!!!!!!! Ура!!!!!!!!!!!! Но выдает ошибку(
Действительно, ошибся. В слепую трудно так писать без проверки.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DefaultLanguage ru
AddDefaultCharset windows-1251
php_value default_charset "cp1251"
ErrorDocument 404 http://site.ru/404.html
ErrorDocument 500 http://site.ru/500.html
RewriteEngine On
RewriteCond %{REQUEST_URI} /view_articles.php
RewriteCond %{QUERY_STRING} id=1289
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]
RewriteCond %{REQUEST_URI} /view_articles.php
RewriteCond %{QUERY_STRING} id=1290
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]
RewriteCond %{REQUEST_URI} /view_articles.php
RewriteCond %{QUERY_STRING} id=1291
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]
RewriteCond %{REQUEST_URI} /view_articles.php
RewriteCond %{QUERY_STRING} id=1292
RewriteRule ^(.*)$ /view_article_celebration.php [R=301,L]

Цитата Сообщение от miketomlin Посмотреть сообщение
Есть OR-флаг. Также можно использовать список в единственном условии, о чем я выше писал.
Приведите рабочий пример, пожалуйста. Как можно несколько правил выше переписать в более короткой форме?
1
Заблокирован
05.07.2017, 20:56 17
OR-флаг к условиям с %{QUERY_STRING} добавляйте. Условия с %{REQUEST_URI} уберите, перенеся view_articles\.php в регулярку единственного правила (скобки там не нужны, просто оставьте обрамление в начале и в конце). Можно и условие одно оставить (см., что я писал ранее про список).
0
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
05.07.2017, 21:01  [ТС] 18
Да!!!!!!!!!!!! Заработало!!!!!! Как же я рада!!!!!!!!!!
Спасибо вам!!!!!!!!!!!!!!!!! Я уже и не надеялось, что получится!!
Если у меня несколько статей с других урлов, я могу написать так под вашим кодом?
RewriteCond %{REQUEST_URI} /view_articles.php
RewriteCond %{QUERY_STRING} id=4229
RewriteRule ^(.*)$ /view_articles_kids.php [R=301,L]
0
25 / 25 / 11
Регистрация: 15.10.2009
Сообщений: 185
05.07.2017, 21:12 19
Цитата Сообщение от hitball Посмотреть сообщение
я могу написать так под вашим кодом?
ну да, можете

Добавлено через 14 секунд
Цитата Сообщение от hitball Посмотреть сообщение
я могу написать так под вашим кодом?
ну да, можете
1
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 110
05.07.2017, 21:16  [ТС] 20
Я уже попробовала - это просто сказка!!!!!!! Спасибо Вам под каждым постом!!!
0
05.07.2017, 21:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2017, 21:16
Помогаю со студенческими работами здесь

Редирект на PHP
Как сделать чтобы сработал редирект такого плана . Раньше был форум .. site.ru/forum/ А сейчас он...

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

Редирект на PHP
Помогите сделать редирект с одного сайта на другой с сохранением адреса первого сайта. Пробовал...

302 редирект - PHP
Здравствуйте! Подскажите, пожалуйста, как с помощью PHP сделать 302 редирект на другой домен с той...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru