Перенаправление .htaccess на страницу с некоторыми переменными GET при ошибке

#.htaccess #errordocument

#.htaccess #errordocument

Вопрос:

Я хочу .htaccess перенаправить на index.php при ошибке, но с отправкой некоторых специальных GET переменных.

Например, при ошибке 404 я хочу, чтобы он перенаправлял на

 /index.php?article=404.php
  

Я не знаю, как это сделать, поскольку я не нашел для этого ни одного хорошего руководства.

Это то, что я пробовал:

 RewriteEngine on
ErrorDocument 404 /index.php?article=404.php
ErrorDocument 403 /index.php?article=403.html
  

Казалось, что это сработало для ошибки 404, но для ошибки 403 это показало:

Запрещено

У вас нет разрешения на доступ к […] на этом сервере.

Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 404 Not Found.

Как мне это сделать?

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

1. ваш htaccess в порядке, но поймите, что он также применим ко всем вложенным папкам, и поскольку вы используете относительные пути, если пользователь посещает yoursite.com/somefolder/someotherfolder/somepage.php , вместо перенаправления на yoursite.com/index.php , они перенаправляются на, yoursite.com/somefolder/someotherfolder/index.php если someotherfolder не содержит index.php тогда вы получите 404.

2. другими словами, используйте полный путь к index.php в вашем htaccess и у вас все должно быть в порядке

3. О, спасибо, я попробую.

4. Ах, точно… Я задавался вопросом, как Apache узнает свой корневой каталог.

5. я не эксперт по htaccess, но я бы переписал все URL-адреса на определенный php-скрипт, а затем попросил бы этот php-скрипт выполнить фактическое перенаправление. php может проверить, существует ли файл, а затем загрузить данную страницу с ошибкой, если она не найдена. вот как я всегда это делал.