Я занимаюсь разработкой веб-приложения, в котором я могу легко преобразовать статические HTML-страницы в динамический HTML, и я хочу сделать это без применения каких-либо ненужных конфигураций.Для удобства управления я помещаю статические HTML-файлы в подкаталог:
/root/content/theme/
В каталоге /root/
находится файл index.php
.Например, статический HTML-файл index.html
находится внутри подкаталога /root/content/theme/
.С помощью модуля перезаписи Apache при каждом посещении http://root.com/index.html
он будет включать /index.html
из подкаталога /root/content/theme/
, поэтому, как мне кажется, я получаю доступ к /index.html
.Теперь проблема в том, что, хотя /index.html
загружен, но ресурсы, такие как изображения и таблицы стилей (все URL являются относительными), не будут загружены должным образом.Мое решение для этого состоит в том, чтобы использовать перенаправления.
Все запросы страницы должны были бы быть отфильтрованы в /index.php
(конечно, те, которые на самом деле не существуют на сервере, поскольку он поддерживается mod_rewrite).Если ресурс изображения должен быть запрошен с сервера, например "style/images/bg.png"
, так как это относительный URL, это означает, что он запрашивает "http://root.com/style/images/bg.png"
.Конечно, эта страница не существует, потому что настоящий bg.png
существует в "http://root.com/content/theme/style/images/bg.png"
.Поэтому всякий раз, когда index.php обнаруживает, что запрашивается ресурс в /root/content/theme/
, его просто нужно перенаправить на "http://root.com/content/theme/style/images/bg.png"
.
Это решение работает нормально, но меня беспокоит, еслиэто требует большей нагрузки на сервер и не рекомендуется, так как каждый ресурс в /root/content/theme/
должен быть перенаправлен из корня.
Я думал, что это не будет иметь большого значениятак много, так как большинство браузеров имеют кеш-систему.Как вы думаете?
Кстати, я использую относительные URL для ресурсов, потому что я хотел, чтобы приложение было максимально гибким (например, когда мне нужно было перенести мои файлы в другой домен)