Rewriterule

Тема в разделе "Веб-серверы - Администрирование", создана пользователем EwGenij, 10 окт 2006.

Статус темы:
Закрыта.
  1. EwGenij

    EwGenij Гость

    Есть следующая задача и 3 ее толкования,
    чтобы было точно ясно, что нужно сделать.

    1- Все запросы к сайту идут к файлу index.php
    для этого в .htaccess делаем строку

    RewriteRule (.*) index.php?$2 [L] - (1)

    затем нам нужно сделать папку со стилями,
    картинками и прочей штукой, которая нужна
    для оформления страницы.
    Делаем все в папке templates, как и положено.

    Разумеется запрос типа /templates/style.css
    у нас не пройдет ввиду первой строки в .htaccess
    поэтому решено делать так, все стили идут
    по "ключевому каталогу" design, то есть
    запрос типа /design/style.css
    должен отобразить файл /templates/style.css
    разумеется, папки design на сервере нет.

    делаем такие строки перед первой строкой в htaccess

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^/design/(.*)$
    RewriteRule ^(design)(.*) /templates/$2 [L,S]


    то есть по идее все красиво оформляется
    запрос шлется куда надо, но храна блин :(
    если есть строка, которая фильтрует
    все остальные запросы после этойго,
    то файл стилей (в данном случае) не получается.
    Выходит, что L,S не работают нифига, если
    добавить (1) после этих условий и преобразования.
    Или сами условия вдруг перестают работать.



    2- почему конструкция

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^/design/(.*)$
    RewriteRule ^(design)(.*) /templates/$2 [L,S]


    выдает файл /templates/123/style.css
    по запросу /design/123/style.css
    а вот конструкция


    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^/design/(.*)$
    RewriteRule ^(design)(.*) /templates/$2 [L,S]

    RewriteRule (.*) index.php?$2


    нет и как это исправить?



    3- Как сделать, чтобы при запросе /design/dir1/dir2/file.ext
    отображался файл /templates/dir1/dir2/file.ext, а все остальные
    запросы отсылались файлу myscript.php



    Буду очень благодарен, если получу точный ответ,
    а не вопросы и предложения типа "А зачем тебе так? может лучше так? сделай-ка вот так, как я!"
    нет разницы, каким способом решить эту задачу,
    но нешить нужно именно ее.

    Большое спасибо! :(
     
  2. EwGenij

    EwGenij Гость

    Вопрос решен, спасибо всем за участие! :blink:
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей