logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Konfiguracja ErrorDocument w Apache - brak dostępu do plików błędów

Piotrek.pxf 06 Wrz 2006 23:26 4720 6
REKLAMA
  • #1 2994939
    Piotrek.pxf
    Poziom 27  
    Posty: 806
    Pomógł: 118
    Ocena: 65
    Witam. Chciałbym dobie skonfigurować strony błędów w Apache, w jednym katalogu.

    Dałem do ścieżki /public_html/strona/ plik .htaccess:

    ErrorDocument 400 /public_html/strona/error/400.php
    ErrorDocument 401 /public_html/strona/error/401.php
    ErrorDocument 403 /public_html/strona/error/403.php
    ErrorDocument 404 /public_html/strona/error/404.php
    ErrorDocument 500 /public_html/strona/error/500.php


    Wszystkie strony błędów mam w katalogu /public_html/strona/error/. No i mam pewien problem, bo to nie działa jak powinno. Jak chcę wejść na jakąś nieistniejącą stronę, to nie wyświetla się ta skonfigurowana przeze mnie, tylko taka:

    Not Found
    The requested URL /strona/fgytugfsdf was not found on this server.
    
    Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request. 

    Z tego wynika, że Apache widzi te pliki, ale nie może ich otworzyć, bo nie ma dostępu do nich. Jak chcę podejrzeć te strony np http://www.costam.com/strona/error/404.php to działają normalnie i jest do nich dostęp.

    Czy może ktoś wie w czym jest błąd?
  • REKLAMA
  • Pomocny post
    #2 2996752
    gregor7pl
    Poziom 14  
    Posty: 69
    Pomógł: 7
    Ocena: 4
    1) Napisz jaka masz dystrybucje Linuxa
    2) podaj pelne sciezki do katalogu z plikami 'error' i do glownego katalogu Twojego serwera HTTP (wzgledem katalogu /)

    Bedzie Ci latwiej pomoc.

    Pewnie jak wpiszesz:
    http://www.costam.com/public_html/strona/error/400.php
    to zamiast stron z Twoim komunikatem pojawia sie informacje o dostepie 'Forbidden'? Jesli tak to Apache nie jest skonfigurowany do udostepniania tych plikow. Aby to 'uleczyc' musisz albo udostepnic te katalogi dla Apache (edycja pliku konfiguracyjnego), albo przezycic w udostepniane miejsce (podkatalog glownego katalogu www).

    Duzo zalezy od dystrybucji jaka masz.

    Mam nadziej ze choc troszke pomoglem.
  • REKLAMA
  • #3 2996904
    Piotrek.pxf
    Poziom 27  
    Posty: 806
    Pomógł: 118
    Ocena: 65
    A więc jest to konto w serwisie http://dlk.pl/ Nie za bardzo wiem na jakim on stoi linuxie. Apache jest w wersji 1.3.37.

    Ścieżka od katalogu głównego, do mojej strony to:
    /home/pxf/domains/pxf.dlk.pl/public_html/

    Trochę dziwne, bo katalog główny apache jest w /public_html/, a żeby htaccess widział te pliki errorów trzeba podawać ścieżkę od /pxf.dlk.pl/public_html/strona/error/500.php a nie normalnie od katalogu głównego (w przeciwnym wypadku pisze "Additionally, a 404 Not Found", a nie "Forbidden" jak ma wyświetlić stronę błędu). Może tu jest błąd, że jest ustawione coś, że ścieżki trzeba podawać od katalogu /domains/, a katalog główny to /public_html/ i Apache do niższych katalogów nie ma dostępu.

    Jak to naprawić? Mogę napisać do admina żeby coś dodał w konfigu.
  • REKLAMA
  • Pomocny post
    #4 2996935
    gregor7pl
    Poziom 14  
    Posty: 69
    Pomógł: 7
    Ocena: 4
    Moze jak w pliku .htaccess podasz te dluzsze sciezki to bedzie dobrze? Jest duza szansa ze to wlasnie pomoze.

    Jak nie pomoze, to stworz w katalogu /public_html/strona/error/ tez plik .htaccess i pobaw sie z uprawnieniami. Z tego cow wiem to w .htaccess mozna nadpisac wiekszosc ustawien, jesli tylko admin na to pozwala (on w swoim konfigu calego serwera musi ustawic opcje AllowOverride czy cos kolo tego).

    Jestem pewnien ze to pierwsze pomoze (co sam zreszta suherowales :-). Daj znac jak wyszlo.
  • REKLAMA
  • #5 2997065
    Piotrek.pxf
    Poziom 27  
    Posty: 806
    Pomógł: 118
    Ocena: 65
    No AllowOverride mam ustawione na pewno. Już się bawiłem z tymi ścieżkami i tylko jak się poda /pxf.dlk.pl/public_html/strona/error/500.php to dodatkowo pisze że ma Forbidden dla strony błędu. Jak dam inaczej, to że strony błędu nie znaleziono. Też już wcześniej próbowałem ustawiać jakieś prawa do katalogu /strona/error/ ale to nic nie dało.
  • #6 2999384
    gregor7pl
    Poziom 14  
    Posty: 69
    Pomógł: 7
    Ocena: 4
    Rozumiem, ze problem nadal nie rozwiazany... czy moze tylko dla bledu 500?

    Strony bledow sa akceptowane, tylko nie mozna ich wywolac. Moze na poczatek umiesc je w swoim glownym katalogu www i zmienic odpowiednio odwolania w .htaccess.
    Testowal bym najpierw czy strony bledow sie wyswietlaja po podaniu sciezki bezposrednio do nich, a nastepnie przez wygenerowanie odpowiedniego bledu.

    Dla pocieszenia powiem tylko, ze na swoim serwerze tez mialem problemy, skrypty php nie chcialy mi sie w niektorych podkatalogach uruchamiac, w innych strony www, ustawienie wszystkiego zabraklo mi chyba z miesiac, a bledy na ogol byly banalne, glownie literowki, ale czasami dla uzyskania konkretnego efektu kilka opcji musialo byc ustawione w konkretny sposob, co przy metodzie prob i bledow jaka stosowalem okazalo sie czasochlonne. Zycze wiec cierpliwosci :-)
  • Pomocny post
    #7 10003328
    kolorafa
    Poziom 2  
    Posty: 4
    Pomógł: 1
    Ocena: 7
    Jako że odnośnik do posta jest dość wysoko w google w problemach z stronami błędów opisze problem kolegi.

    W większości przypadków użytkownicy wprowadzają nieprawidłowe ścieżki, ErrorDocument akceptuje uri, a więc podajemy np.

    ErrorDocument 404 /404.php
    nie
    ErrorDocument 404 404.php
    czy
    ErrorDocument 404 /public_html/404.php

    Jeśli chcemy by tylko podfolder posiadał strony błędów to dla przykładu kolegi, mamy stronę http://pxf.dlk.pl/
    chcemy by po wpisaniu np.
    http://pxf.dlk.pl/test/TakiFodlerNieIstnieje
    pojawiła się strona błędu nasza zdefiniowana, gdzie pod
    http://pxf.dlk.pl/test2/TakiFodlerNieIstnieje
    pojawiła się oryginalna lub jeszcze inna, schemat jest prosty.

    w katalogu test (w tym przypadku /home/pxf/domains/pxf.dlk.pl/public_html/test/) umieszczamy plik ".htaccess"

    gdzie nasza strona błędu która ma się pojawić znajduje się pod adresem http://pxf.dlk.pl/test/error/404.php

    a w nim następujący wpis
    ErrorDocument 404 /test/error/404.php

    jest to bardzo istotne, podajemy uri czyli nasz adres z przeglądarki http do tej strony błędu lecz bez tej domeny.

    Po tej operacji w podkatalogach /test/... ujrzymy naszą stronę błędu, lecz w pozostałych zobaczymy domyślną.

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczy konfiguracji dyrektywy ErrorDocument w serwerze Apache 1.3.37 na koncie hostingowym z katalogiem głównym w /home/pxf/domains/pxf.dlk.pl/public_html/. Użytkownik próbuje ustawić niestandardowe strony błędów (400, 401, 403, 404, 500) w katalogu /public_html/strona/error/, jednak zamiast własnych komunikatów pojawiają się standardowe błędy "Not Found" oraz "403 Forbidden" przy próbie wywołania plików błędów. Problem wynika z nieprawidłowego podawania ścieżek w pliku .htaccess – Apache wymaga podawania ścieżek względnych względem katalogu głównego serwera WWW (np. /pxf.dlk.pl/public_html/strona/error/404.php), a nie absolutnych systemowych. Dodatkowo, brak dostępu (403 Forbidden) wskazuje na niewłaściwe uprawnienia lub ograniczenia konfiguracyjne serwera (np. brak odpowiednich ustawień AllowOverride lub ograniczenia dostępu do podkatalogów). Zalecane jest umieszczenie plików błędów w katalogu dostępnym dla Apache i podawanie ścieżek URI względnych do katalogu głównego serwera WWW. Można także testować dostępność plików błędów bezpośrednio przez przeglądarkę, aby zweryfikować uprawnienia i konfigurację. Wskazano, że w pliku .htaccess należy używać ścieżek w formacie ErrorDocument 404 /strona/error/404.php, a nie ścieżek systemowych lub bez ukośnika na początku. Problem jest typowy dla konfiguracji serwerów współdzielonych, gdzie dostęp do katalogów jest ograniczony, a konfiguracja wymaga precyzyjnego określenia ścieżek i uprawnień.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA