Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nieistniejący adres a ErrorDocument 404 [htaccess]
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
freewalker
Witam,
mam problem z wyświetlaniem strony po wpisaniu nieistniejącego adresu, kiedy użytkownik ręcznie zmieni adres (doda slasha, aby "zrobić" katalog z adresu) to wyświetla się strona, którą przechwytuję przez Error 404 (a dokładnie ładuje mi index.php) ale sęk w tym, że nie wczytuje wtedy poprawnie ścieżki do arkuszy stylów, przez co wszystko jest rozsypane i nieczytelne.

Dokładnie wygląda to tak:
- wpisując mojastrona.pl/xxx jest wszystko ok, adres nie istnieje ale wyświetla się główna strona (przez przejęcie błędu 404)
- wpisując mojastrona.pl/xxx/ wyświetla się główna strona ale bez css

można pokusić się o usunięcie ostatniego slasha, ale czy nie wpłynie to na inne podstrony?

Chodzi więc o regułę, która przy błędzie 404 fizycznie zatrzymuje użytkownika na katalogu głównym domeny, nawet jeśli w pasku adresu zostanie adres z katalogiem / katalogami, które nie istnieją.

Nie wiem czy jasno się wyrażam, ale problem tego przechwycenia jest tak samo niejasny dla mnie, jak powyższy opis;)

W htaccess mam taki oto prosty zapis:
ErrorDocument 404 /index.php

Dodam, że mam 3 różne domeny, więc dodanie jednego bezpośredniego adresu nie będzie rozwiązaniem chyba, że można tu stosować warunki RewriteCond coś na wzór if($domena=="pl") echo "http://mojadomena.pl";P
nospor
pliki css, js, obrazki powinny zawierac sciezki bezwgledne a nie wzgledne co zapewne ma miejsce u ciebie

nie:
css/plik.css

a:
/css/plik.css

a najlepiej
http://mojastrona.pl/css/plik.css
trueblue
Użyj tagu base.
Użyj reguł .htaccess przekierowujących adresy z "bez slasha" na "ze slashem" lub odwrotnie.
nospor
Cytat
Użyj tagu base.
Osobiscie nie polecam base. Sam kiedys stosowalem i w pewnym momencie zaczelo sie kaszanic, nie pamietam juz teraz o co chodzilo. Lepszym rozwiazaniem jest uzywanie sciezek bezwglednych i problemow nie ma.
trueblue
nospor, już kiedyś o tym mówiłeś.
Ja mam jednak odmienne zdanie.
nospor
Tez juz o tym mowiles wink.gif
freewalker
dzięki nospor, w moim przypadku poprzedzenie ścieżki slashem pomaga ale uświadomiłem sobie teraz, że muszę wszystkie ścieżki w serwisie poprawić i nie tylko w headerach, bo łącznie z anchorami, img, ścieżkami w css - niezły bajzel:/
Co prawda mam TextCrawler'a ale mam obawy przed taką zmasowaną zamianą na nieswoim serwisie :| Chociaż jak wystartuję zegar roboczogodzin to przecież nie zbiednieje:P...

Ze względu na ilość linków na stronie ścieżka bezwzględna z adresem strony dość mocno zwiększy objętość kodu, a tego bym chciał uniknąć bo i tak "ciężki" jest - ale skoro / pomaga to więcej nie ma co dywagować smile.gif

Dzięki jeszcze raz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.