Jump to content

Как сделать редирект каждой страницы?


Recommended Posts

Был сайт чисто на PHP файлах.Сейчас я сделала для него простую CMS и проблема в URL.

 

Что придётся на каждую страницу делать редирект что ли?

Есть ли автоматизированные средства?

Link to post
Share on other sites

Покупайте криптовалюту безопасно за считанные минуты!

До        https://сайт.ру/страница.php

 

После      https://сайт.ру.ru/страница.php?id=21

 

Проблема в том что для каждой страницы был свой файл с своим названием, а теперь вместо них всего один у которого естественно одно название.Как мне перенаправлять трафик с тех страниц на новые?.

Link to post
Share on other sites

В принципе, если хорошо подумать можно и .htaccess хорошенько подогнать и будем вам чудо)

Но лучше почитайте об реврайтах

Link to post
Share on other sites
  • VIP

До        https://сайт.ру/страница.php

 

После      https://сайт.ру.ru/страница.php?id=21

 

Проблема в том что для каждой страницы был свой файл с своим названием, а теперь один с одним названием.

 

Раз понимаете PHP, то простой пример организации таких урлов

<?php

switch($_REQUEST['id']) {

case "post1":
echo "post1 title"; // или include("нужная страница")
break;
case "post2":
echo "inf"; // или include("нужная страница")
break;
default:
echo "main"; // или include("нужная страница")
break;
}

?>

В htaccess тоже можно сделать, только с этим проблемма) Если сайт использует базу данных, то тут уже несколько иначе будет)

Edited by buktor
Link to post
Share on other sites

Раз понимаете PHP, то простой пример организации таких урлов

<?php

switch($_REQUEST['id']) {

case "post1":
echo "post1 title";
break;
case "post2":
echo "inf"; // или include("нужная страница")
break;
default:
echo "main";
break;
}

?>

В htaccess тоже можно сделать, только с этим проблемма) Если сайт использует базу данных, то тут уже несколько иначе будет)

Извините но ничего не поняла.В PHP не понимаю.Да..сайт использует базу данных.

Link to post
Share on other sites

Вам нужно (было) сделать следующее:

 

при перенесении контента из файлов в базу данных, в таблице БД сделать поле (например, old_file_name), в которое писать старое название файла (например, часть имени файла без расширения).

 

Далее при запросе на свободный урл https://сайт.ру/страница.php , если не присутствует параметр ID делать выборку из базы той страницы, где ваше поле для связки = имени текущей страницы, на которую обратились.
 Таким образом вы получаете присвоенный данной статье ID и если такая статья в базей действительно существует делаете перенаправление на нее: exit(header('Location: https://сайт.ру/страница.php?id=<ID_из_базы>'));

 

Единственно в htaccess нужно все ненайденные файлы отправлять на какой-то файл, где будет находиться данный обработчик. Самый простой способ написать так:

 

ErrorDocument 404 /404.php , где в файле 404.php будет вышеописанная выборка, а в случае, если она не дала результата, будет отображаться страница 404 :) Таким образом убьете 2 зайца.

 

Всего хорошего.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...