#.htaccess
#.htaccess
Вопрос:
В моем приложении у меня есть вики-блоги и другой контент, где автор может назначить URL-адрес при их создании, чтобы он был оптимизирован для поисковых систем.
Итак, я хочу перенаправить URL-адреса на index.php где я сверяюсь с базой данных и соответствующим образом генерирую выходные данные.
Но есть также запросы на CSS, изображения и другие файлы, которые я должен оставить в покое.
-
Я могу либо исключить CSS, изображения и т.д. Из HTACCESS, либо перенаправить все остальное на index.php .
-
Или я могу перенаправить все на index.php а затем просто измените местоположение, используя header () для изображений css и т.д..
Какой метод мне следует использовать?
Ответ №1:
Как насчет отправки только любого запроса на файл ресурсов / каталог, который не существует, в ваш index.php
файл? Я думаю, что обычно именно так все и работает.
.htaccess —
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-] )/?$ index.php?id=$1 [QSA,L]
</IfModule>
Комментарии:
1. Отлично! Я предполагаю, что -f и -d означают «существующий файл» и «существующий каталог» .. ??
Ответ №2:
Что я делаю в своем приложении, так это включаю все, что не связано с шаблоном, в header.php файл и все, что связано с шаблоном в footer.php файл. Таким образом, я могу вызвать header.php нужен ли мне доступ к / только / аспектам базы данных моего программного обеспечения.
Ответ №3:
IMO гораздо лучше исключить статические файлы (css, js, изображения), используя простые правила .htaccess, и пересылать только остальные URI на ваш передний контроллер, т. е. index.php
.
Если вы должны были обрабатывать эти статические файлы в своем, index.php
то вам придется либо перенаправить их с помощью функции php header()
(и добавить 1 дополнительный переход в браузер), либо вам нужно будет выводить их содержимое, используя соответствующий тип содержимого, что на самом деле не является задачей, которую должен выполнять ваш фронт-контроллер..