#php #redirect #header
#php #перенаправление #заголовок
Вопрос:
Как я могу перенаправить
example.com/script.php?id=567
Для
example.com/script2.php?id=5677amp;something=anotherthingamp;something2=anotherthing2
в php используется перенаправление с заголовком 301?
Комментарии:
1. в php или mod_rewrite? выберите одну, пожалуйста
2. Я предполагаю, что ему нужен PHP, поскольку он помечен таким образом.
3. да, это то, что я хотел… моя ошибка.
Ответ №1:
Сам код прост:
<?php
if($_SERVER['REQUEST_URI']=='/script.php?id=567'){
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: http://example.com/script2.php?id=5677amp;something=anotherthingamp;something2=anotherthing2');
die();
}
?>
Вы также можете использовать $_SERVER[‘HTTP_HOST’] для получения имени хоста example.com
. И вы также должны убедиться, что ваш скрипт не имеет никаких выходных данных перед вызовом header()
.
Комментарии:
1. хорошо, но 567 был только примером … это переменная… (плохо, что я не указал)
2. Что вы хотите перенаправить, куда, по какому совпадению? @Col. Возможно, Шрапнель был прав. Если ваша ситуация не зависит от PHP, вам следует рассмотреть возможность использования mod_rewrite
3. что ж… например, 576 это может быть идентификатор из базы данных (и у меня есть больше), мне нужно перенаправить его с помощью php.
4. итак, у вас есть
$id=576
… и вы хотите конкретно перенаправить наscript2.php?id={$id}7amp;otherparams
? Если нет, разместите ссылку перенаправления, карту или что-то еще5. я пытался добавить
$the_id=$_REQUEST['id'];
, но скрипт больше не работает script2.php?id=$the_idamp;otherparams
Ответ №2:
Если у вас есть доступ к файлу script.php
, то вы можете добавить следующий код сверху:
<?php
$id = $_GET['id'];
//Get your extra params from the database if needed...
header ('HTTP/1.1 301 Moved Permanently');
header ('Location: http://example.com/script2.php?id='.$id.'amp;something=anotherthingamp;something2=anotherthing2'); //Append params retrieved from database here.
die();
?>