• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Rewriterule

  • Автор темы EwGenij
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

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



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

Большое спасибо! :(
 
E

EwGenij

Вопрос решен, спасибо всем за участие! :blink:
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!