Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: можно ли сделать редирект с нескольких страниц
 
 автор: veriky   (24.08.2004 в 17:26)   письмо автору
 
 

здравствуйте. Можно ли сделать редирект, так что бы с нескольких страниц были переходы. Например, что бы со страниц http://www.mysite.ru/main.php?p=60. http://www.mysite.ru/main.php?p=61
http://www.mysite.ru/main.php?p=12 и так далее..их много (просто бы старый сайт) на главную страницу???
я читала про редирект, писала
redirect /main.php?p=60 http://www.newcity.ru
и он не работает, даже если одна страница. Как сделать правильно, подскажите !!!

   
 
 автор: cheops   (24.08.2004 в 17:42)   письмо автору
 
   для: veriky   (24.08.2004 в 17:26)
 

Имеется в виду сделать редирект средствами Apache или PHP?
Если средствами PHP, то редирект можно осуществить следующим образом. Вообще страница-то одна - main.php и задача сводится к извлечению параметра p и передачи его по новому адресу. Этого можно добиться добавив в начало файла main.php соответствующий HTTP-заголовок

<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://www.newcity.ru/main.php?p=<?php echo $_GET['p']; ?>'>
</HEAD></HTML>

или если требуется просто переход на новую страницу

<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=http://www.newcity.ru'>
</HEAD></HTML>

Этот код будет осуществлять редирект в любое указанное в параметре URL место.

PS Если вы хотите использовать файл Apache .htaccess, то вам чуть позже ответит Дизайнер - он у нас спец по укрощению Apache :)

   
 
 автор: veriky   (25.08.2004 в 11:42)   письмо автору
 
   для: cheops   (24.08.2004 в 17:42)
 

спасибо огромное! я сдела так, но у меня теперь главная страница www.mysite.ru/main.php при загрузке перещелкивается на ут же самую но в адресной строке www.mysite.ru/main.php?p=, а если будет p=60, то опять получается шапка от main c ошибкою :( .....

   
 
 автор: cheops   (25.08.2004 в 12:38)   письмо автору
 
   для: veriky   (25.08.2004 в 11:42)
 

Хм... вот что не понятно: ошибку вызывает пустой параметр p или вообще его передача функции main.php? Избавиться от передачи пустого параметра можно следующим образом:
<?php
 
if(isset($_GET['p']))
 {
   
$str "http://www.newcity.ru/main.php?p=".$_GET['p'];
 } else {
   
$str "http://www.newcity.ru/main.php";
   
// или 
   //    $str = "http://www.newcity.ru/main.php?p=1";
   // где p=1 работает 100%
 
}
 
?>
<HTML><HEAD> 
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=<?php echo $str?>'> 
</HEAD></HTML>

   
 
 автор: veriky   (25.08.2004 в 13:39)   письмо автору
 
   для: cheops   (25.08.2004 в 12:38)
 

все осталось как и было :( перещелкивается.

   
 
 автор: veriky   (25.08.2004 в 13:56)   письмо автору
 
   для: veriky   (25.08.2004 в 13:39)
 

а вот еще такой вариант...я тут полазила и написала :)
<?php
if ($_GET['p']) {
header("Location: http://www.newcity.ru"); 
}
?>

в принципе работает....но наполовину.......у меня на сайте встречаются ссылки типа
http://www.mysite.ru/main.php?d=about_shops&p=search
они тоже пересылаются......с этим можно что-ни то сделать?

P.S. и как из апача можно сделать тоже расскажите плизз!!!

   
 
 автор: glsv (Дизайнер)   (25.08.2004 в 15:02)   письмо автору
 
   для: veriky   (25.08.2004 в 13:56)
 

>P.S. и как из апача можно сделать тоже расскажите плизз!!!
Давайте сначала точнее разберемся - что нужно сделать.

Т.е. что нужно?
1. Если адрес www.mysite.ru?p=чему_то (с параметром p) то нужно пересылать на адрес http://www.newcity.ru

2. А если без параметра p, то никуда не пересылать? Или тоже должны пересылаться?

>http://www.mysite.ru/main.php?d=about_shops&p=search
они тоже пересылаются......с этим можно что-ни то сделать?

Пересылаются куда? А куда должны пересылаться?

   
 
 автор: veriky   (26.08.2004 в 11:33)   письмо автору
 
   для: glsv (Дизайнер)   (25.08.2004 в 15:02)
 

2. не должны пересылаться
3. из того корявого :) (самокритика) скрипта эти страничик тоже пересылаются на www.mysite.ru
а нужно что бы пересылалися только те странички , у которых есть параметр "р" сразу после "?"
http://www.mysite.ru/main.php?р=about_shops& - должна пересылаться

http://www.mysite.ru/main.php?d=about_shops&p=search - эта страница не должна пересылаться, у нее "р" не после знака "?"

   
 
 автор: glsv (Дизайнер)   (26.08.2004 в 21:53)   письмо автору
 
   для: veriky   (26.08.2004 в 11:33)
 

>а нужно что бы пересылалися только те странички , у которых есть параметр "р" сразу после "?"

Вообще то условие не очень хорошее... Ну не очень правильно делать пересылку только на основании какой параметр прописан первым. Ну да ладно. Надо, так надо.


<?
  $url
=$_SERVER['REQUEST_URI'];
  if (
strpos($url"?p=") and !empty($_GET['p'])) header("Location: http://www.newcity.ru"); 
?>


Получаем строку запроса в переменную $url.
Затем смотрим, чтобы параметр p шел после запроса, ну и чтобы был не пустой. Если оба условия выполняются, то тогда перенаправляем на другой адрес.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования