htaccess — как перенаправить, когда 403 и 404 основаны на DOCUMENT_ROOT?

#php #apache #.htaccess

#php #apache #.htaccess

Вопрос:

  1. У меня есть приложение на PHP, работающее на Apache (Linux).
    1. Когда клиент локальный (LAN), DOCUMENT_ROOT: /webroot/public_html/app
    2. Когда клиент является удаленным (WAN), DOCUMENT_ROOT: /webroot/public_html/extapp
    3. Я хотел бы, чтобы файл .htaccess, когда возникает 403 или 404, Apache мог перенаправлять, что-то подобное:

Ошибка в документе 403 ( DOCUMENT_ROOT === ‘/app’ ) ? /app/error/403.php : /extapp/error/403.php

Спасибо!

Комментарии:

1. невозможно. директивы errordoc выполняют ПРОСТОЕ сопоставление http-кода -> single script. если вы хотите загружать разные файлы, тогда ErrorDocument 403 somescript.php и поместите логику в этот ОДИН скрипт для загрузки соответствующих данных: <?php if ($is_lan) { load_lan(); } else { load_wan(); }

2. Спасибо! Я действительно думал, что смогу что-то подобное, потому что есть инструкция RewriteEngine On, которая включает механизм перезаписи и позволяет использовать регулярные выражения.

3. ошибка document не имеет НИЧЕГО общего с mod_rewrite. это все равно, что сказать. «Я думал, что поедание этого банана научит меня водить этот ferrari»