Нужно написать правило для .htaccess
Здравствуйте, у меня есть в корне два файла:
/proxy.php
/index.php
Мне нужно когда пользователь запрашивает страницу "/news/**", отправить запрос в /proxy.php и если ответ proxy.php не равен 200, то отправить запрос в index.php стандартным "RewriteRule . /index.php [L]"
По сути мне нужно выполнить такую последовательность:
1) Пользователь заходит на страницу "/news/**"
2) Запрос уходит в /proxy.php например так "RewriteRule . /proxy.php [L]"
3) В файле proxy.php проверяется url по белому списку и если:
I. Такого url нету в белом списке, то нужно запретить дальнейшее выполнение правил в .htaccess или отправить пользователя в /403, главное что-бы запрос не выполнялся файлом index.php
II. Если запрос есть в белом списке, то продолжить правила и выполнить index.php
Пример решения задачи на nginx:
location / {
try_files $uri $uri @fallback;
}
location @fallback { # Любой запрос попадает сюда "/", "/news", etc
proxy_pass http://host/proxy.php; # Тут ответ 200 или 303, если 200 то @backend не выполняется
proxy_intercept_errors on;
error_page 303 = @backend; # Если ответ 303
}
location @backend {
# Тут запрос отправляется в apache и результат ответа CMS выдается пользователю
}
-
На каком фреймворке или cms сайт?
-
Насколько я знаю htaccess неумеет проверять статус, такое точно решаемо на Nginx rewrite
-
Уточните, пжалуйста, "если ответ proxy.php не равен 200", то какой именно код он выдаёт?
-
Актуальные фриланс-проекты в категории Linux и Unix
Необходимо найти причину периодических зависаний Linux/PHP-сервера интернет-магазинаНужен опытный Linux System Administrator / DevOps для диагностики причин периодических зависаний интернет-магазина. Необходимо не временно устранить симптомы, а найти первопричину проблемы, объяснить её и предложить оптимальное решение.Что известно Интернет-магазин работает… Linux и Unix, Настройка ПО и серверов ∙ 1 день 8 часов назад ∙ 25 ставок |