ФорумРазработкаУстановка и администрирование ПОВебсервер → Нетривиальная задачка по htaccess

Нетривиальная задачка по htaccess

  • cOAPerator

    Сообщения: 38 Репутация: N Группа: Кто попало

    Spritz 17 февраля 2016 г. 5:08

    Всем доброго!

    значит задачка следующая - запилить динамические поддомены, но при этом не иметь ни поддоменов ни папок на которые эти поддомены ссылаются

    имеем домен: domen.com
    так же имеем папку domen.com/dir-handler
    и виртуальные(которые еще не созданы) поддомены: sub1.domen.com sub2.domen.com итд список которых храним например в бд

    1. при запросе domen.com/sub1 пинаем на sub1.domen.com через 301 - тут понятно
    2. юзверь попав на sub1.domen.com получает ответ от скрипта который лежит в папке domen.com/dir-handler

    фишка в том чтобы сделать 2 пункт - то бишь обработку запросов домена через htaccess

    че смог нарыть:

    RewriteEngine On  
    RewriteCond %{HTTP_HOST}! ^$  
    RewriteCond %{HTTP_HOST}! ^(www.)?domain.com$ [NC]  
    RewriteCond %{HTTP_HOST}<->%{REQUEST_URI} ^(www.)?([^.]+).*<->/([^/]+) [NC]  
    RewriteCond %2<->%3 !^(.*)<->1$ [NC]  
    RewriteRule ^(.+) /%2/$1 [L]
    

    но не работает

    Фишка в том чтобы из админки добавлять виртуальные поддомены и ссылать их на папки, а так как папок нет физически, то адрес обрабатывается через чпу

    Через CNAME и алиасы не предлагать, это я могу руками делать, но поддоменов много и имена их заранее неизвестны

  • cOAPerator

    Сообщения: 38 Репутация: N Группа: Кто попало

    Spritz 17 февраля 2016 г. 8:44, спустя 3 часа 36 минут 34 секунды

    нарыл такую инструкцию.
    Создаем динамические поддомены с помощью mod_rewrite [vismech.ru]

    в принципе должно работать, но есть одно НО - нет доступа к конфигу Apache
    естественно

    <VirtualHost *:80>
    DocumentRoot /path/to/dir/westseo.ru
    ServerName westseo.ru
    ServerAlias *.westseo.ru
    </VirtualHost>

    не работает тоже
    есть какие варианты как обойти запрет?

  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 17 февраля 2016 г. 9:46, спустя 1 час 1 минуту 54 секунды

    Перенес тему в более подходящий раздел. Я крутой )))

    Если ты на шаред хостинге, ты никак не обойдешь невозможность править конфиг. Но оно тебе и не надо в этой задаче.
    Давай-ка с самого начала: ты настроил * в DNS чтобы запросы к под-доменам приходили на твой сайт?

    ιιlllιlllι унц-унц
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 17 февраля 2016 г. 10:10, спустя 23 минуты 47 секунд

    Если поддомен анализируется как часть роут-правила - то назначаем виртуальный хост по маске *.example.com на дефолтный document root (или порт для режима реверс-проксирования), в котором уже анализируем поддомен как делали бы это обычным php-скриптом.

    В httpd это делается например так
    ServerAlias example.com *.example.com

    В nginx так:

    server {
        listen       80;
        server_name  *.example.org;
        ...
    }

    В целом задача простая, если вылечиться от шаредхостинговой болезни.

    Спустя 51 сек.

    Короче, ТС, ты не должен хотеть решать эту задачу через htaccess

    не всё полезно, что в swap полезло
  • cOAPerator

    Сообщения: 38 Репутация: N Группа: Кто попало

    Spritz 17 февраля 2016 г. 10:22, спустя 12 минут 10 секунд

    Давай-ка с самого начала: ты настроил * в DNS чтобы запросы к под-доменам приходили на твой сайт?
    @artoodetoo, точно так
    запилил A запись на основной домен на index.php (в нем обработчик ЧПУ)

    В целом задача простая, если вылечиться от шаредхостинговой болезни.
    Короче, ТС, ты не должен хотеть решать эту задачу через htaccess
    @master, еслиб я мог вылечиться от етого, у меня б не возник вопрос етот ))

    ПС: они меня походу задвинуть на тариф за 1,5к рублей пытаются ( изверги
    ППС: хочу крутой серв с администрированием от саппорта и кучей любых настроек за 250р ))) варианты есь какие?

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 17 февраля 2016 г. 10:25, спустя 2 минуты 15 секунд

    ух

    Сапожник без сапог
  • cOAPerator

    Сообщения: 38 Репутация: N Группа: Кто попало

    Spritz 17 февраля 2016 г. 10:27, спустя 2 минуты 19 секунд

    ~~~~~ продолжение ~~~~~
    запилил A запись на основной домен на index.php (в нем обработчик ЧПУ)
    а дальше саппорт меня отшил, сказав что на виртуальном хостинге править VirtualHost они не будут, потому что я не один и
    делать вот так

    <VirtualHost *:80>
    DocumentRoot /puth/to/domains/mydomen.club/public_html/
    ServerName mydomen.club
    ServerAlias www.mydomen.club *.mydomen.club
    </VirtualHost>
    

    тоже не дадут, потому что у них не работают маски
    короче заипали мне весь мозг.
    а потом я с горя сравнил тарифы с другим хостингом и прихуел от увиденного - на другом в 2 раза дешевле

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 17 февраля 2016 г. 10:32, спустя 5 минут 20 секунд

    @cOAPerator, VDS хостинг, VPS хостинг, виртуальные выделенные серверы от Айхор [ihor.ru]
    администрировать будешь сам ессно

    Спустя 199 сек.

    Админов шаредхостинга тоже можно понять. Только, панимаиш, настроили конфу для сайтов "я и моя собака", как появляются энтузиасты, которые хотят нестандартную конфу недорого. Я бы слал лесом.

    не всё полезно, что в swap полезло
  • cOAPerator

    Сообщения: 38 Репутация: N Группа: Кто попало

    Spritz 17 февраля 2016 г. 10:39, спустя 6 минут 24 секунды

    @cOAPerator, https://www.ihor.ru/vds
    администрировать будешь сам ессно

    Админов шаредхостинга тоже можно понять. Только, панимаиш, настроили конфу для сайтов "я и моя собака", как появляются энтузиасты, которые хотят нестандартную конфу недорого. Я бы слал лесом.

    @master, да я тож понимаю, но я им сверху хостинга за 360р еще 300 за два IP плачу (у меня 2 сайта на SSL) и по 790 за 2 SSL могли бы и заморочиться чуток за такое бабло..

    какую ось лучше брать? я из линуксов тока с дебианом заморачивался, када раньше серв держал, пока не надоело..

  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 17 февраля 2016 г. 10:46, спустя 6 минут 57 секунд

    @cOAPerator, ты платишь им за определённые услуги, и они их предоставляют. ничего сверх того, никаких "заморочиться чуток", они не должны, если это не было оговорено изначально. конечно, ты можешь перестать им платить и найти дешевле. в свободной стране как-никак живём.

    не всё полезно, что в swap полезло
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 17 февраля 2016 г. 12:48, спустя 2 часа 2 минуты 52 секунды

    Пацаны, вы всё верно говорите, но давайте таки разберемся с проблемой топикстартера ))) В текущем состоянии. Это возможно.
    Терпеть не могу, когда спрашиваешь как подвести часы в телефоне, а тебе наперебой "покупай айфон", "покупай нексус", "покупай нокию" )))

    Я когда жил на шареде (таймвеб), у меня все поддомены открывались в одной точке, т.е. алиас со звездочкой стоял. Что там сучки со службы поддержки говорят, не имеет никакого значения.

    @cOAPerator, убери весь мусор из .htaccess, брось в корень файл с echo 'HOST_NAME='.$_SERVER['HOST_NAME']; и подрочи на него с разных поддоменов. Оно должно открываться всегда, выводить одно и то же, только HOST_NAME должен меняться.

    Если работает как ожиджается, то дальше решаешь:

    • Либо просто роутинг завязать на имя хоста, в Симфони, например, это из коробки возможно.
    • Либо по имени хоста брать разные конфиги, набор скриптов при этом один.
    • Либо таки через mod_rewrite процессить разные файлы, т.е. точки входа.
    ιιlllιlllι унц-унц
  • cOAPerator

    Сообщения: 38 Репутация: N Группа: Кто попало

    Spritz 17 февраля 2016 г. 13:04, спустя 15 минут 48 секунд

    @cOAPerator, убери весь мусор из .htaccess, брось в корень файл с echo 'HOST_NAME='.$_SERVER['HOST_NAME']; и подрочи на него с разных поддоменов. Оно должно открываться всегда, выводить одно и то же, только HOST_NAME должен меняться.

    @artoodetoo, эх.. если бы все было так просто.

    у меня любой поддомен выдает сейчас: Сайта с таким именем нет на сервере

    это притом что в DNS-e A запись на редирект, а в чистом htaccess сейчас только это

    <VirtualHost *:80>
    > DocumentRoot /puth/to/domains/mydomen.ru/public_html/
    > ServerName mydomen.ru
    > ServerAlias *.mydomen.ru
    > </VirtualHost>

    и вот минуту назад пришел ответ саппорта:
    Подобная директива действительно не затрагивает работу других аккаунтов, однако реализация ее функционирования нарушит логику функционирования системы ограничения (разграничения), по этой причине для виртуального хостинга не рассматривается возможность изменения действующих настроек.

    В принципе понятно за дерективу VirtualHost в htaccess - на хостинге ограничение на количество сайтов на тарифе

    короче походу придется хостинг менять, либо на VDS переползать.
    самое смешное тут еще один вопрос возник по поводу SSL - на хостинг низя поставить больше одного сайта через https, типа политика компании, регайте новый аккаунт либо опять же переходите на VDS
    говорю тут же им - у конкурентов 250 у вас 800р, он свое гнет, типа не могем и все тут.
    пиздец короч полный. у меня слов нет.

  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 17 февраля 2016 г. 13:17, спустя 12 минут 35 секунд

    задача действительно нетривиальная)

    все умрут, а я изумруд
  • cOAPerator

    Сообщения: 38 Репутация: N Группа: Кто попало

    Spritz 17 февраля 2016 г. 13:25, спустя 8 минут 28 секунд

    задача действительно нетривиальная)

    @md5, ага ) придумать каким способом убить саппорт за такую хню..
    игра - угадай настройки хостинга

  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 17 февраля 2016 г. 13:27, спустя 1 минуту 23 секунды

    стоп! в htaccess не может быть virtualhost. он походу вообще нерабочий у тебя. удали нахуй.

    что значит "A запись на редирект" ? ты должен настроить записи A для @ - главный домен и * - все под-домены. типа:
    Alt text

    ιιlllιlllι унц-унц

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