Поддомены на .htaccess

Тема в разделе "Как сделать...", создана пользователем Q_BASIC, 27 сен 2014.

  1. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    352
    Симпатии:
    223
    У меня поддомены работают так:
    Код:
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^www\.domain\.ru$
    RewriteCond %{HTTP_HOST} (www\.)?(.*)\.domain\.ru$
    RewriteCond %{REQUEST_URI} !sub/
    RewriteRule ^(.*)$ sub/%2/$1
    И открыть можно так: http://поддомен.сайт.ру и так: http://поддомен.сайт.ру/sub/поддомен

    Мне надо сделать редирект с кодом HTTP 301 с http://поддомен.сайт.ру/sub/поддомен на http://поддомен.сайт.ру
     
    Chvalov нравится это.
  2. latteo

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

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.404
    Симпатии:
    1.185
    На php такой редирект делать не разумно, в силу снижения производительности, но как-то так возможно:
    PHP:
    if (strpos($_SERVER["REQUEST_URI"], '/sub/') === 0) {
      
    $sub substr($_SERVER["REQUEST_URI"], 4strpos($_SERVER["REQUEST_URI"], '.') - 4);
    }
    if (!empty(
    $sub)) {
      
    header("Location: {$sub}.сайт.ру"TRUE301);
    }
    для UTF доменов (русскоязычных могут быть в их числе) возможно потребуется добавить префикс mb_ перед всеми вызовами substr и strpos.


    PS: Этот код можно написать 2-3 строчками через регулярки - дерзайте ;)