Взять из URL первые буквы

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Q_BASIC, 26 фев 2015.

  1. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    380
    Симпатии:
    236
    Доброе время суток :)

    На всех доменах открывается сайт, одна и та же директория.

    Надо чтобы при открытии .css файлов открывалась директория /user_files/a/b/c/style.css

    Пример url: abccity.ru/style.css

    То есть:
    У всех главная папка: /user_files/
    Далее берем первую букву из домена: /a/
    Далее берем вторую букву из домена: /b/
    Далее берем третью букву из домена: /с/
    Далее имя открытого файла: /style.css

    Возможно ли такое вообще сделать? Или лучше это на PHP сделать?
     
  2. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    194
    Симпатии:
    235
    Тут все просто :)
    Имя запрошенного домена находится в %{HTTP_HOST}
    Метасимвол регулярного выражения точка соответствует любому символу т.е. нужно три точки каждая из которых в круглых скобках.
    В переменных %1 %2 %3 получим первые три сивола.
    И не забыть добавить RewriteCond %{REQUEST_URI} !^/user_files иначе будет зацикливание.
    Код:
    RewriteCond %{REQUEST_URI} !^/user_files
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.)(.)(.)
    RewriteRule ^.*\.css$ /user_files/%1/%2/%3/$0 [L]
    
     
    Q_BASIC нравится это.