@andreyshpigunov

Как скрыть исходный путь после рерайта URL?

Все файлы на сервере хранятся в корне, в папке /apps/sitename.ru/. По умолчанию, все они открываются по обычному пути, то есть страница www.sitename.ru/i/logo.png открывает файл /apps/sitename.ru/i/logo.png. Если же файла не существует, обработка передается контроллеру.

Я использую следующие правила:
RewriteCond %{DOCUMENT_ROOT}/apps/sitename\.ru/%{REQUEST_URI} -f
RewriteRule ^(.*)$ apps/sitename\.ru/$1 [NC,QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.html?_action=$1 [QSA,L]

Но я вижу по крайней мере одну проблему, кроме пути www.sitename.ru/i/logo.png, файл также доступен и по адресу www.sitename.ru/apps/sitename.ru/i/logo.png. Подскажите, как сделать так, чтобы путь www.sitename.ru/apps/sitename.ru/i/logo.png вел к обработчику, а не к файлу?
  • Вопрос задан
  • 2260 просмотров
Пригласить эксперта
Ответы на вопрос 1
DmitryPRG
@DmitryPRG
PHP программист
Не я бы сделал так:
в .htaccess прописал бы что все обращения по адресу: www.sitename.ru/apps/*
шли бы в файл обработчик, который мог бы делать редирект или еще что-то.

И второй файл бы обрабатывал из корня или из папки /i/ в зависимости от того что у вас является корнем для обработки.
И по всем обращениям проверял есть ли файл по локальному адресу: www.sitename.ru/apps/sitename.ru/i/logo.png и выдавал бы его контент в браузер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы