#.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 может проверить, существует ли файл, а затем загрузить данную страницу с ошибкой, если она не найдена. вот как я всегда это делал.