PDA

Zobacz pełną wersję : Strona błędu 404 w głównej treści witryny



Bazyl
11-10-2009, 18:49
Tworzymy artykuł z dowolna zawartością (odnośnikiem do mapy witryny, strony głównej, wstawionym modułem, itd.), który będzie wyświetlał się w przypadku wystąpienia błędu.
Tworzymy menu ukryte (nigdzie nie wyświetlane, nieopublikowane), a w nim nową pozycję, do której przypisujemy artykuł ze stroną błędów. W moim przykładzie utworzony alias pozycji menu to xxxxx.
Do głównego folderu szablonu wgrywamy plik error.php z zawartością:

<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404') {
header('Location: ' . '/xxxxx');
exit;
}
?>
Już.Artykuł ze stroną błędu powinien mieć ustawione noindex, follow - wujaszek go nie zindeksuje.
Nie działa po zrobieniu literówki w rozszerzeniu: np. hhtml.

//
Zadziała po dopisaniu do pliku .htaccess:

ErrorDocument 404 /xxxxx.html

laki992
14-08-2010, 14:24
ale co masz na mysli alias menu ? niewiem co źle robię ale to niedziała....
utworzyłem artykuł nigdzie go nie przypisałem jest w nim pewna treść, stworzyłem nowe menu potem utworzyłem moduł menu i przypisałem na niewidoczna pozycję wgrałem plik error.php na serwer
<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404') {
header('Location: ' . '/index.php?option=com_content&view=article&id=13'); // (próbowałem takżę adresu xxxxxxx/error-404.html takżę nie działa )
exit;
}
?>

Ja niewiem o co chodzi proszę o pomoc.

moje
14-08-2010, 15:14
Musisz pzeniść plik error.php w katalogu templates/system/ do katalogu templates/{nazwa używanego przez Ciebie szablonu}/ i zmodyfikować jego zawartość, żeby przypominała wyglądem stronę, wtedy Joomla automatycznie wyświetli stronę błędu dla błędów 403, 404 i 500.

Bazyl
14-08-2010, 16:11
Podany w pierwszym poście sposób działa: wyświetla utworzoną wcześniej stronę błędu 404 (zwykły artykuł) w głównej treści witryny.
Zrób wszystko po kolei zgodnie z tym, co napisałem.

Alias to alias, ustawiasz go w szczegółach pozycji menu.

laki992
14-08-2010, 17:43
wielkie dzięki Panowie teraz wszystko działa :D Wiedziałem że pomożecie :D Wielkie dzięki!! :up:

Jdwind
15-08-2010, 00:23
xxxxx.html
A jeżeli nie mam włączonych prostych adresów? Mogę wpisać np. "index.php?option=com_content&view=article&id=51" w htaccess czy nie?
Pzdr.

moje
15-08-2010, 00:58
A jeżeli nie mam włączonych prostych adresów? Mogę wpisać np. "index.php?option=com_content&view=article&id=51" w htaccess czy nie?
Pzdr.
Nigdy nie korzystałem z tej metody własnych strona z błędami ale sposób podany przeze mnie działa niezależnie od tego czy korzysta się z normalnych czy z prostych adresów.
Odpowiadając na Twoje pytanie, powinno to zadziałać - osobiście nie sprawdzałem.

EDIT:

Ewentualnie użyć dodatkowo JRoute tak dzast in kejs - szukajka na docs.joomla.org się kłania ; )

Jdwind
15-08-2010, 01:22
Ewentualnie użyć dodatkowo JRoute tak dzast in kejs - szukajka na docs.joomla.org się kłania ; )
Nie chcę dodatkowych narządziów do tego, aż tak mi nie zależy na prostych adresach :)

joe
17-12-2010, 23:05
Dzięki za cenne wskazówki :up:

Spróbowałem ominąć pkt 2. ...

2. Tworzymy menu ukryte (nigdzie nie wyświetlane, nieopublikowane), a w nim nową pozycję, do której przypisujemy artykuł ze stroną błędów. W moim przykładzie utworzony alias pozycji menu to xxxxx.

... i mi się udało ;)
Używam prostych adresów więc wystarczyło stworzyć nieprzypisany artykuł i w kodzie wstawić id artykułu
<?php
defined( '_JEXEC' ) or die( 'Restricted index access' );
if (($this->error->code) == '404') {
header('Location: ' . '/home/id_artykulu');
exit;
}
?>
Może ktoś skorzysta z mojej podpowiedzi :)
pzdr/joe

ZacnyUser
21-02-2011, 06:54
Zadziała po dopisaniu do pliku .htaccess:

ErrorDocument 404 /xxxxx.html

Nie mam praw do zmiany tego pliku, a chmodow też zmienić nie mogę.
Bo mówimy oczywiście o pliku przed głównym katalogiem na serwerze, prawda?

W ogóle ten plik jest pusty, muszę zmienić chyba firmę hostingową.

joe
21-02-2011, 22:39
Bo mówimy oczywiście o pliku przed głównym katalogiem na serwerze, prawda?
w głównym katalogu joomli masz plik .htaccess ( htacces.txt jeśli nie używasz prostych adresów - wtedy poczytaj co z tym zrobić ;) ) i to w nim masz dopisać w/w kod
a tak przy okazji u mnie działa bez ingerencji w .htaccess

ZacnyUser
21-02-2011, 22:50
w głównym katalogu joomli masz plik .htaccess ( htacces.txt jeśli nie używasz prostych adresów - wtedy poczytaj co z tym zrobić ;) ) i to w nim masz dopisać w/w kod
a tak przy okazji u mnie działa bez ingerencji w .htaccess

Tak zrobiłem, dziękuję bardzo. ;)

pwpib
01-06-2011, 10:21
Wujaszek google uporczywie sprawdza mi strony, których w systemie nie mam. Podaje że 5000 stron zgłosiło błąd 404. Mam zamiar przekierować błąd 404 na na przykład stronę główną. Czy zrobię błąd?

A może ktoś ma pomysł jak spowodować aby google nie sprawdzał stron nie istniejących.

pozdro

Jerry77
05-11-2012, 19:22
Proszę o przykład jak i gdzie wstawić atrybut nofollow dla 404. Z góry dziękuję i pozdrawiam :)

big_krzysiek
05-11-2012, 20:27
Witaj...a co to za hosting, w którym nie możesz zmienić chmod-ów.
Plik .htaccess o którym piszesz to plik w głównym katalogu Joomla.
Jeśli chcesz zrobić własna stronę błędu 404, a masz z tym problemy doinstaluj np. komponent error 404 do pobrania na JED

Jerry77
05-11-2012, 22:18
Hej, hosting 1&1, a ze stronki wywaliłem kilka starych zakładek więc wujaszek wyświetla je jako błędy indexowania. Do .htaccess dodałem co trzeba, plik error.php i sitemap również zrobione i hula, ale za diabła nie wiem co i gdzie mam wpisać, żeby boty wujka nie widziały tej 404 co dodałem. Po prostu nie ogarniam :zagubiony: Wiem ile muszę, a chetnie bym sie dowiedział więcej, więc proszę o podpowiedź :)

big_krzysiek
05-11-2012, 23:04
Jeśli masz własną stronę błędów error.php wstaw tam w head komendę <meta name="robots" content="noindex, nofollow" />

W pliku robots.txt możesz zablokować twój plik błędu

W narzędziach administracyjnych Google "zbić" stronę błędu niżej

Jerry77
06-11-2012, 07:37
O to chodzi :up: Dzięki i pozdrawiam :)

ariel_matrix
31-01-2013, 23:21
witam,
da się zrobić tak, aby zamiast wyswietlania strony błędu przenosiło automatycznie do strony startowej?

big_krzysiek
31-01-2013, 23:42
Tak... dopisz w pliku .htaccess kod:

ErrorDocument 404 /index.php

ariel_matrix
31-01-2013, 23:54
nie działa :/
http://hotele-spa.info

big_krzysiek
01-02-2013, 00:12
No tak...teraz już coś wiadomo o hostingu...

Na Home wpis powinien wyglądać tak:

ErrorDoc 403 http://hotele-spa.info

informacja ze strony home.pl (http://home.pl/dokumentacja/funkcjeserwera/htaccess/stronybledow)

ariel_matrix
01-02-2013, 00:22
pewnie dlatego tez inne sposoby nie działały ;/ ten home, ale da się do niego przyzwyczaić :))


//nie działa dalej..

pablo741
27-08-2013, 22:53
przepraszam za odkopanie tematu
ale ten sposób u mnie nie działa
wyświetla mi się komunikat Fatal error: Cannot access protected property JException::$code in (sciezka do pliku error.php)
co jest nie tak?

joomla 2.5, hosting 1&1