LINUX.ORG.RU

htaccess правило проверки наличия файла при редиректе

 , ,


0

1

Приветствую. Есть такая вот задача, не могу придумать нормальное решение. Есть «основной файл» .job. Если его нет = 403. Доступен по
eee.ru/files/111-222.job

Есть «вторичные файлы», которые
eee.ru/read/111-222/test-1234567.txt
eee.ru/read/111-222/arh.zip
Все оно конечно работает, но задача выдавать 403 при запросе вторичных файлов, если первичного нет. Т.е. по факту нужно составить RewriteCond для проверки файла наличия файла, который не равен %{REQUEST_FILENAME}. Возможно как-то слепить RewriteCond на проверку файла?
Чтобы при запросе
eee.ru/read/111-222/arh.zip
сначала проверялся
eee.ru/files/111-222.job

#прямой запрос файла
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^files/([0-9]*)-([0-9]*).job - [R=403,NC]

#запрос вторичных файлов должен быть запрещен, если .job файла нет
RewriteRule ^read/([0-9]*)-([0-9]*)/test-([0-9]*).txt$ /test.txt?install=$1-$2 [L]
RewriteRule ^read/([0-9]*)-([0-9]*)/arh.zip$ /$1-$2/all.zip [L]

Благодарен за помощь.
Пытаюсь слезть с nginx хостинга на апач. nginx более гибкий в этом плане, там все настроено и работает.
Кстати, директива RewriteCond - [AND], которая коряво, но решала бы логику - не работает почему-то на хостинге.



Последнее исправление: doko (всего исправлений: 1)

Ок. Сам нашел синтаксис.

RewriteCond %{REQUEST_URI}::$1 ^/read/(([0-9]*)-([0-9]*)).*
RewriteCond %{DOCUMENT_ROOT}/files/%1.job !-f
RewriteRule (.*) - [R=403,NC]

Тему можно считать закрытой

doko
() автор топика

Пытаюсь слезть с nginx хостинга на апач.

Ты идиот? Зачем ты внедряешь этот устаревший хлам вместо нормального веб-сервера? Ещё и слово то какое придумал - «слезть».

nginx это дефолт для веб-сервера, апач надо выкидывать отовсюду где видишь.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Давай для начала определимся, что ты - хам подзаборный. Ок. Теперь давай определимся с темой вопроса: не «что лучше?», а «как сделать?». Теперь давай определимся с аргументами: на моем сервере vps остался один одностраничный сайт; оплата хостинга 1200 рублей в мес; держать совой vps ради одностраничного сайта на замечательном nginx, когда в нем нет практического смысла - идиотизм.
Теперь мы определились кто из нас «идиот».
Спасибо за ответ.

doko
() автор топика
Ответ на: комментарий от doko

Давай для начала определимся, что ты - хам подзаборный.

Я возможно местами грубо выражаюсь, но хамством это назвать не могу.

оплата хостинга 1200 рублей в мес;

И причём тут собственно выбор веб-сервера? Найди хостинг подешевле или вообще может бесплатный по какой-нить акции (если сайт нагрузку не создаёт, может такое быть), но не на доисторическом апаче а на нормальном веб-сервере. Да даже vps можно найти заметно дешевле по-моему (тут некоторые озвучивали цены раза в 4 меньше).

А то у тебя подход «поживу на помойке, зато бесплатно - не надо платить квартплату». «Хочу слезть с квартиры».

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Я плачу за апач (для этого сайта) 4 рубля в мес. Я могу написать один раз конфиг htaccess и забыть про него. Без всяких vps.
Кто спорит что nginx лучше и более гибкий? Я в первом сообщении это написал.
У меня нет необходимости платить за 10тикомнатную квартиру, если 9 жильцов из нее съехали… только ради того, что это модно, круто и интересно. Даже не считаю рентабельным для этих целей покупать vps за 80 рублей, тем более бесплатный.
С моими редираетами справится всратый роутер с busybox httpd 2012 года.
Я хочу купить хостинг, закинуть туда сайт и забыть про него. Главное чтобы он выполнял свои функции.

doko
() автор топика