Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1287849951
Иван
2010-10-23 20:05
2011.01.16
Мерцание TStringGrid при отрисовке


2-1287766980
volkafff
2010-10-22 21:03
2011.01.16
Обращение ко всем записям.


2-1287417521
кроссман
2010-10-18 19:58
2011.01.16
Выделить строку в listbox


15-1285792164
Юрий
2010-09-30 00:29
2011.01.16
С днем рождения ! 30 сентября 2010 четверг


2-1287812607
Илья2
2010-10-23 09:43
2011.01.16
Вызов не kernel32.dll функций из DllEntryPoint





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский