Помогите соеденить несколько редиректов

Тема в разделе "Как сделать...", создана пользователем Sancho221, 24 июл 2014.

  1. Sancho221

    Sancho221 Создатель

    Регистр.:
    10 окт 2011
    Сообщения:
    35
    Симпатии:
    9
    Может эти редиректы можно как-то соединить, а то у меня их уже много скопилось, хотелось бы уменьшить код.

    PHP:
    /* Редирект | начало */
    $url_redirect "";
    switch ( 
    $_SERVER['REQUEST_URI'] ) {
    case 
    "/страница.html" $url_redirect "[url]http://сайт.ru/страница[/url]"; break;
    }
    if ( 
    $url_redirect != "" ) { header"HTTP/1.1 301 Moved Permanently" ); header"Location: " $url_redirect ); }
    /* Редирект | конец */

    /* Редирект | начало */
    $url_redirect "";
    switch ( 
    $_SERVER['REQUEST_URI'] ) {
    case 
    "/страница2.html" $url_redirect "[url]http://сайт.ru/страница2[/url]"; break;
    }
    if ( 
    $url_redirect != "" ) { header"HTTP/1.1 301 Moved Permanently" ); header"Location: " $url_redirect ); }
    /* Редирект | конец */

    /* Редирект | начало */
    $url_redirect "";
    switch ( 
    $_SERVER['REQUEST_URI'] ) {
    case 
    "/страница3.html" $url_redirect "[url]http://сайт.ru/страница3[/url]"; break;
    }
    if ( 
    $url_redirect != "" ) { header"HTTP/1.1 301 Moved Permanently" ); header"Location: " $url_redirect ); }
    /* Редирект | конец */
     
  2. eavy

    eavy Постоялец

    Регистр.:
    19 янв 2009
    Сообщения:
    75
    Симпатии:
    24
    То есть просто глобально со "/stranica.html" на "/stranica"?

    Вот так можно:

    PHP:
    RewriteBase /
    RewriteRule (.*)\.html$ $[R=301,L]
     
  3. newbik

    newbik Создатель

    Регистр.:
    22 апр 2008
    Сообщения:
    14
    Симпатии:
    8
    Обычно редирект настраивают в htaccess, а для объединения нужны какие-то схожести, например
    site.com/meganewz/1.html нужно перенаправить на site.com/news/1.html
    тогда здесь достаточно выделить meganewz и перенаправить.

    На сколько я понял ты просто хочешь отбросить для всех страниц окончание html ?
    Или есть другие условия?
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.450
    Симпатии:
    1.243
    Видя такой код мне хочется спросить: неужели документации php является закрытым ресурсом, которые требует душу или денег за прочтение?

    http://php.net/manual/ru/control-structures.switch.php - switch одна из самых простых возможностей большинства ЯП

    PHP:
    /* Редирект | начало */
    $url_redirect "";
    switch ( 
    $_SERVER['REQUEST_URI'] ) {
      case 
    "/страница.html" $url_redirect "[url]http://сайт.ru/страница[/url]"; break;
      case 
    "/страница2.html" $url_redirect "[url]http://сайт.ru/страница2[/url]"; break;
      case 
    "/страница3.html" $url_redirect "[url]http://сайт.ru/страница3[/url]"; break;
    }
    if ( 
    $url_redirect != "" ) { header"HTTP/1.1 301 Moved Permanently" ); header"Location: " $url_redirect ); }
    /* Редирект | конец */
     
    Sancho221 нравится это.