Форум: "Прочее";
Текущий архив: 2011.01.16;
Скачать: [xml.tar.bz2];
ВнизНастройка apache: htaccess Найти похожие ветки
← →
xayam © (2010-10-03 00:46) [0]Не могу понять, как сделать такую штуку в htaccess, как обработка ошибок с меняющимися путями относительно корня.
Работающие примеры:
ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /const_folder/error.php?e=404
ErrorDocument 401 /error.php?e=401
ErrorDocument 403 "Извините, сегодня доступ Вам закрыт
Но такая фигня, что если файл htaccess переместить со всеми вложенными папками и файлами,
то придется редактировать в htaccess все строки с ErrorDocument.
Как можно исключить редактирование htaccess при переносе в другую папку?
Решение проблемы сводится к тому, что надо в htaccess иметь какую-то константу var_folders (может быть несколько вложенных папок),
чтобы можно было записать нечто типа этого:
ErrorDocument XXX /var_folders/error.php?e=XXX
Обыскал все переменные окружения, но такой нет.
← →
Kerk © (2010-10-03 00:56) [1]А что если использовать относительные пути вместо абсолютных? Убери слэш в начале ссылки.
ErrorDocument 401 error.php?e=401
← →
xayam © (2010-10-03 00:58) [2]Да пробовал уже, но вылетает сразу 500 Internal Server Error error
← →
xayam © (2010-10-03 00:59) [3]и так тоже: ./
← →
Kerk © (2010-10-03 01:00) [4]
> xayam © (03.10.10 00:58) [2]
>
> Да пробовал уже, но вылетает сразу 500 Internal Server Error
> error
А в лог ошибок что пишет?
← →
xayam © (2010-10-03 01:15) [5]/var_folders/.htaccess:
...
ErrorDocument 403 error.php?e=403
...
/var_folders/protect_folder/.htaccess:
Order Allow,Deny
Deny from all
При переходе по http://servername/var_folders/protect_folder/
на экран вылетает:
Forbidden
You don"t have permission to access /var_folders/protect_folder/ on this server.
Additionally, a 500 Internal Server Error error was encountered while trying
to use an ErrorDocument to handle the request.
Apache Server at ServerName Port 80
в лог:
[Sun Oct 03 01:07:27 2010]
[error]
[client IP_SERVER] client denied by server configuration: /var_folders/protect_folder
[Sun Oct 03 01:07:27 2010]
[error]
[client IP_SERVER] Invalid error redirection directive: error.php?e=403
← →
xayam © (2010-10-03 01:16) [6]IP_SERVER = IP_CLIENT (IP клиента - мой то есть )
← →
Styx (2010-10-03 01:29) [7]ErrorDocument работает только с абсолютными путями - с этим ничего нельзя сделать. Попробуйте переформулировать задачу - возможно, Вам поможет что-то на основе RewriteRule. Там можно делать практически что угодно.
← →
xayam © (2010-10-03 01:43) [8]
> Вам поможет что-то на основе RewriteRule. Там можно делать
> практически что угодно.
с mod_rewrite работает, если нет файла /var_folders/protect_folder/.htaccess,
но хотел его оставить. Или нафиг?
← →
xayam © (2010-10-03 01:44) [9]опс вру пока не работает. А должно? Как? :)
← →
xayam © (2010-10-03 01:57) [10]точнее 403 mod_rewrite"ом можно сделать на папку. А с путями в ErrorDocument непонятно как быть.
← →
Kerk © (2010-10-03 02:12) [11]Может, сделать общий файл error.php и в нем уже обрабатывать каждый конкретный случай? С помощью mod_rewrite, можно туда параметром передавать путь, куда на самом деле запрос пришел.
← →
xayam © (2010-10-03 02:20) [12]Керк, проблема в том, что до модреврайта не все доходит, ErrorDocument в частности обрабатываются на уровне сервера, а не модреврайта. Это можно исправить?
← →
Styx (2010-10-03 11:42) [13]Идея такая, что надо от "негативной" логики перейти к позитивной. У меня, правда, прописано в конфиге апача с путями относительно корня, для httaccess надо додумать:
RewriteCond %{DOCUMENT_ROOT}/$1 -F
RewriteRule ^(.*)$ - [L]
RewriteRule ^(.*)$ /error.php
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.01.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.003 c