Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.01.16;
Скачать: CL | DM;

Вниз

Настройка 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1285257928
Leonid Troyanovsky
2010-09-23 20:05
2011.01.16
Три фильма


2-1287233484
Jimmy
2010-10-16 16:51
2011.01.16
Вывод файлов по маске в ShellListView


15-1285532959
Юрий
2010-09-27 00:29
2011.01.16
С днем рождения ! 27 сентября 2010 понедельник


15-1285881569
Германн
2010-10-01 01:19
2011.01.16
DEFINE VERxxx


15-1285587625
stas
2010-09-27 15:40
2011.01.16
Не работает CUDA