eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.www › Jak zrobić stronę błędu 404 w CMS?
Ilość wypowiedzi w tym wątku: 22

  • 11. Data: 2012-06-13 22:22:04
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Marek <p...@s...com>

    Dnia Wed, 13 Jun 2012 22:11:16 +0200, Cezary Tomczyk napisał(a):

    > Argh, zajrzałem w stare źródło swoje i faktycznie robiłem tak tylko dla
    > "301 Moved Permanently" :/ Nie dla 404.

    No widzisz... a jednak :-)
    Tak więc mój problem pozostaje aktualny.


  • 12. Data: 2012-06-14 09:38:03
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Piotr Chamera <p...@p...onet.pl>

    W dniu 2012-06-13 19:34, Cezary Tomczyk pisze:
    > W dniu 2012-06-13 19:13, Marek pisze:
    >> Mam pewien kłopot z logiką zarządzania będem 404. Otóż mamy sobie CMS.
    >> Gdy
    >> odwołujemy się do dokumentu, który istniał ale został wykasowany lub
    >> zablokowany - chciałbym aby pojawiła się spersonalizowana informacja, że
    >> "strona WWW o jakimś ID nie istnieje". Gdyby nie fakt personalizacji
    >> komunikatu temat byłby trywialny.
    >>
    >> No więc algorytm mamy taki:
    >> - Ktoś wchodzi np. z Googli na nie istniejącą stronę serwisu.
    >> - CMS grzebie w swoich czeluściach w poszukiwaniu tejże strony i
    >> stwierdza,
    >> że jej nie ma.
    >> - W tym momencie tworzona jest w locie treść komunikatu i następuje
    >> przekierowanie do strony "warningu" z przekazaniem w sesji w/w treści
    >> komunikatu.
    >> - Pojawia się piekna strona z w/w komuniaktem... ale to dla mnie za mało.
    >>
    >> No i świetnie... ale przekierowanie to nie kod 404 lecz któryś z serii
    >> 300.
    >> Mogę w komunikacie ustawić <meta> na "noindex" ale to nie zadziała jak
    >> 404
    >> z punktu widzenia wyszukiwarki. Zauważyłem, że jeśli strona jest już
    >> zindeksowana, to taką pozostanie jeśli nie dam wyraźnie 404. Jak to
    >> rozwiązać?
    >
    > Wg mnie, jeśli strona nie istnieje, to powinno się przekierować na
    > podstronę z informacją o tym dla użytkownika + nagłówek 404.

    Ale po co przekierowywać na jakąś podstronę? Jeśli strona nie istnieje,
    to po prostu wygenerować pod żądanym przez użytkownika url stronę
    z komunikatem błędu i dać jej nagłówek 404. W treści komunikatu można
    dać cokolwiek, np. linki do jakichś opcji dla użytkownika,
    do wyszukiwarki itp. - niczemu to nie przeszkadza.

    > Jeśli jednak strona istnieje, ale po prostu jest w innym miejscu, to
    > przekierować użytkownika automatycznie + nagłówek 301 Moved Permanently.


  • 13. Data: 2012-06-14 11:55:28
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Cezary Tomczyk <c...@g...pl>

    W dniu 2012-06-14 09:38, Piotr Chamera pisze:
    > W dniu 2012-06-13 19:34, Cezary Tomczyk pisze:
    >> W dniu 2012-06-13 19:13, Marek pisze:
    >>> Mam pewien kłopot z logiką zarządzania będem 404. Otóż mamy sobie CMS.
    >>> Gdy
    >>> odwołujemy się do dokumentu, który istniał ale został wykasowany lub
    >>> zablokowany - chciałbym aby pojawiła się spersonalizowana informacja, że
    >>> "strona WWW o jakimś ID nie istnieje". Gdyby nie fakt personalizacji
    >>> komunikatu temat byłby trywialny.
    >>>
    >>> No więc algorytm mamy taki:
    >>> - Ktoś wchodzi np. z Googli na nie istniejącą stronę serwisu.
    >>> - CMS grzebie w swoich czeluściach w poszukiwaniu tejże strony i
    >>> stwierdza,
    >>> że jej nie ma.
    >>> - W tym momencie tworzona jest w locie treść komunikatu i następuje
    >>> przekierowanie do strony "warningu" z przekazaniem w sesji w/w treści
    >>> komunikatu.
    >>> - Pojawia się piekna strona z w/w komuniaktem... ale to dla mnie za
    >>> mało.
    >>>
    >>> No i świetnie... ale przekierowanie to nie kod 404 lecz któryś z serii
    >>> 300.
    >>> Mogę w komunikacie ustawić <meta> na "noindex" ale to nie zadziała jak
    >>> 404
    >>> z punktu widzenia wyszukiwarki. Zauważyłem, że jeśli strona jest już
    >>> zindeksowana, to taką pozostanie jeśli nie dam wyraźnie 404. Jak to
    >>> rozwiązać?
    >>
    >> Wg mnie, jeśli strona nie istnieje, to powinno się przekierować na
    >> podstronę z informacją o tym dla użytkownika + nagłówek 404.
    >
    > Ale po co przekierowywać na jakąś podstronę? Jeśli strona nie istnieje,
    > to po prostu wygenerować pod żądanym przez użytkownika url stronę
    > z komunikatem błędu i dać jej nagłówek 404. W treści komunikatu można
    > dać cokolwiek, np. linki do jakichś opcji dla użytkownika,
    > do wyszukiwarki itp. - niczemu to nie przeszkadza.

    O tym dokładnie myślałem. Może użyłem zbyt dużego skrótu myślowego.

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/



  • 14. Data: 2012-06-14 13:41:10
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Marek <p...@s...com>

    Dnia Thu, 14 Jun 2012 09:38:03 +0200, Piotr Chamera napisał(a):

    > Ale po co przekierowywać na jakąś podstronę? Jeśli strona nie istnieje,
    > to po prostu wygenerować pod żądanym przez użytkownika url stronę
    > z komunikatem błędu i dać jej nagłówek 404. W treści komunikatu można
    > dać cokolwiek, np. linki do jakichś opcji dla użytkownika,
    > do wyszukiwarki itp. - niczemu to nie przeszkadza.

    Mi chodziło o 2 aspekty co do przekierowania. Mianowicie zależy mi na
    personalizacji treści komunikatu. Jeśli strony nie ma a ktoś uważa, że to
    błąd, to chciałbym aby przesłał mi ID tej strony. Wiele ludzi nie ma
    pojęcia co to URL itp. Dlatego wolę to napisać na ekranie.

    A dlaczego przekierowanie? Z wygody programistycznej. CMS mieli jakiś
    szablon zawierający dyrektywy, napotyka na jedną z nich generującą problem
    (dokument nie istnieje) i robi przekierowanie do ogólnej formatki
    komunikatu o błędzie przesyłając w tle treść tego komunikatu. URL
    komunikatu zawsze jest wtedy taki sam. Można więc łatwo zrobić coś takiego,
    że tworzymy funkcję message(treść) i wywołujemy ją. Byłoby idealnie gdyby
    było to możliwe z kodem 404 ... ale jak widzę nie jest. Bo tylko 3xx to
    umożliwiają.

    Znacznie trudniej będzie mi zamiast prostego przekierowania przerwać
    parsowanie formatki, załadowanie innej i rozpoczęcie parsowania od nowa.


  • 15. Data: 2012-06-14 21:18:50
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Artur Muszyński <a...@u...wytnijto.com.pl>

    W dniu 2012-06-14 13:41, Marek pisze:
    > Mi chodziło o 2 aspekty co do przekierowania. Mianowicie zależy mi na
    > personalizacji treści komunikatu. Jeśli strony nie ma a ktoś uważa, że to
    > błąd, to chciałbym aby przesłał mi ID tej strony. Wiele ludzi nie ma
    > pojęcia co to URL itp. Dlatego wolę to napisać na ekranie.

    Po co w ogóle użytkownikowi głowę zawracać. Wrzucaj info do
    logu/bazy/maila do admina.

    > A dlaczego przekierowanie? Z wygody programistycznej. CMS mieli jakiś
    > szablon zawierający dyrektywy, napotyka na jedną z nich generującą problem
    > (dokument nie istnieje) i robi przekierowanie do ogólnej formatki
    > komunikatu o błędzie przesyłając w tle treść tego komunikatu. URL
    > komunikatu zawsze jest wtedy taki sam. Można więc łatwo zrobić coś takiego,
    > że tworzymy funkcję message(treść) i wywołujemy ją. Byłoby idealnie gdyby
    > było to możliwe z kodem 404 ... ale jak widzę nie jest. Bo tylko 3xx to
    > umożliwiają.

    W modelu MVC nie musisz mieć przekierowania. Widzę, że moc jeszcze na
    ciebie nie spłynęła ;-)

    artur


  • 16. Data: 2012-06-15 10:52:56
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: desertman <d...@p...onet.pl>

    W dniu 2012-06-13 19:13, Marek pisze:
    > No i świetnie... ale przekierowanie to nie kod 404 lecz któryś z serii 300.
    > Mogę w komunikacie ustawić<meta> na "noindex" ale to nie zadziała jak 404
    > z punktu widzenia wyszukiwarki. Zauważyłem, że jeśli strona jest już
    > zindeksowana, to taką pozostanie jeśli nie dam wyraźnie 404. Jak to
    > rozwiązać?

    Nie wiem czemu chcesz zrobić przekierowanie.
    W PHP możesz to w prosty sposób, zrobić mniej więcej tak:

    <?php
    /**
    * Funkcja pobiera z bazy artykuł i go wyświetla,
    * jeżeli artykułu nie znaleziono to tworzony jest
    * komunikat o błędzie i wywoływana jest funkcja
    * wyświetlająca stronę z błędem 404, zawierająca
    * dowolny komunikat błędu (przekazywany jako parametr).
    */
    function showArticle($id)
    {
    $article = $db->getArticle($id);
    if($article)
    echo $article;
    else
    show404Page('Nie znaleziono strony o ID = ' . $id);
    }

    /**
    * Wyświetla stronę 404 - Page not found,
    * z dowolnym komunikatem przekazanym w parametrze $message
    */
    function show404Page($message)
    {
    header("HTTP/1.1 404 Not Found");
    echo $message;
    }
    ?>

    Oczywiście to jest uproszczony przykład, który pokazuje tylko zasadę.

    --
    desertman



  • 17. Data: 2012-06-15 18:48:23
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Marek <p...@s...com>

    Dnia Thu, 14 Jun 2012 21:18:50 +0200, Artur Muszyński napisał(a):

    >
    > Po co w ogóle użytkownikowi głowę zawracać. Wrzucaj info do
    > logu/bazy/maila do admina.

    Tak, to dobre rozwiązanie i chyba rozwiąże temat.

    > W modelu MVC nie musisz mieć przekierowania. Widzę, że moc jeszcze na
    > ciebie nie spłynęła ;-)

    Ależ wiem, że nie muszę i przecież wcale się przy tym nie upieram. :-) Mało
    tego - do tej pory nie interesowałem się 404 lecz wyświelałem "message" z
    "noindex" w meta, że danej strony nie ma. Jednakże po niewczasie
    stwierdziłem, że rozwiązanie ma wadę: Google przestały chcieć usuwać strony
    raz zindeksowane a teraz posiadające "noindex". No i szukam obejścia
    takiego aby nie narobić się za bardzo. Gdyby dało się wysłać 404 i
    przekierować do komunikatu z błędem, byłoby idealnie. Ale skoro nie da się
    - to trudno. Muszę oprogramować obsługę 404 bez przekierowania...


  • 18. Data: 2012-06-15 18:57:28
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Marek <p...@s...com>

    Dnia Fri, 15 Jun 2012 10:52:56 +0200, desertman napisał(a):

    > Oczywiście to jest uproszczony przykład, który pokazuje tylko zasadę.

    Tat tak, właśnie coś takiego implementuję. To jest trochę bardziej złożone
    na poziomie CMS gdyż komunikat powinien być wyświetlony w szacie graficznej
    danego projektu plus kilka innych zagadnień. Chciałem uniknąć nadmiernej
    grzebaniny również po stronie redakcyjnej gdzie będzie definiowana obsługa
    błędów 404 (przewiduję różną dla róznych typów dokumentów). No ale cóż...
    skoro trzeba to trzeba...


  • 19. Data: 2012-06-15 20:56:41
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Mirosław Zalewski <miniopl@CUT_THIS.gmail.com>

    czwartek, 14 czerwca 2012 13:41. Wielka mądrość na czytelników pl.comp.www
    spłynęła, gdy tako rzekł(a) Marek:

    > Z wygody programistycznej. CMS mieli jakiś
    > szablon zawierający dyrektywy, napotyka na jedną z nich generującą problem
    > (dokument nie istnieje) i robi przekierowanie do ogólnej formatki
    > komunikatu o błędzie przesyłając w tle treść tego komunikatu. URL
    > komunikatu zawsze jest wtedy taki sam.

    Zrezygnuj z tej wygody programistycznej na rzecz wygody użytkownika. Jedną
    z bardziej wkurwiających rzeczy w Internecie jest przekierowywanie na osobną
    podstronę z błędem.

    Prosty przykład: użytkownikowi zdarzyło się zapamiętać adres tej części
    serwisu, która go interesuje (ponieważ używasz zrozumiałych dla człowieka
    adresów URL, prawda?) -- dajmy na to domena.net/motoryzacja/news/. Zechciał
    ten adres wpisać ręcznie. Pomylił się i wpisał domena.net/motoryazcja/news/.
    Teraz zamiast kliknąć na pasek adresu i poprawić literówkę, jest na stronie
    domena.net/404.html i musi cały adres URL konstruować od nowa.
    --
    Niżej podpisany, zamieszkały w http://minio.xt.pl ,
    Mirosław Zalewski


  • 20. Data: 2012-06-16 13:54:18
    Temat: Re: Jak zrobić stronę błędu 404 w CMS?
    Od: Artur Muszyński <a...@u...wytnijto.com.pl>

    W dniu 2012-06-15 18:48, Marek pisze:
    > Ależ wiem, że nie muszę i przecież wcale się przy tym nie upieram. :-) Mało
    > tego - do tej pory nie interesowałem się 404 lecz wyświelałem "message" z
    > "noindex" w meta, że danej strony nie ma. Jednakże po niewczasie
    > stwierdziłem, że rozwiązanie ma wadę: Google przestały chcieć usuwać strony
    > raz zindeksowane a teraz posiadające "noindex". No i szukam obejścia
    > takiego aby nie narobić się za bardzo. Gdyby dało się wysłać 404 i
    > przekierować do komunikatu z błędem, byłoby idealnie. Ale skoro nie da się
    > - to trudno. Muszę oprogramować obsługę 404 bez przekierowania...

    Nawet, gdyby było można, to i tak to wprowadza zamęt, bo agent czy
    operator miałby problem z ustaleniem brakującego zasobu. Po
    przekierowaniu widać w adresie zupełnie inny URL oraz... czy strona, na
    którą przekierujesz, dajmy na to 404notfound.html powinna mieć status
    200 czy 404 ;-)
    Ponadto nie ma żadnej gwarancji, że faktycznie zobaczysz treść tej
    strony, a tym bardziej, że zostanie wykonane przekierowanie. IE w
    pewnych sytuacjach wyświetla własny komunikat.

    artur

strony : 1 . [ 2 ] . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: