Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Szukam _ Nieistniejący adres a ErrorDocument 404 [htaccess]

Napisany przez: freewalker 8.03.2017, 23:28:38

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

Napisany przez: nospor 9.03.2017, 13:24:16

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

Napisany przez: trueblue 9.03.2017, 13:27:22

Użyj tagu base.
Użyj reguł .htaccess przekierowujących adresy z "bez slasha" na "ze slashem" lub odwrotnie.

Napisany przez: nospor 9.03.2017, 13:41:39

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.

Napisany przez: trueblue 9.03.2017, 13:45:01

nospor, już kiedyś o tym mówiłeś.
Ja mam jednak odmienne zdanie.

Napisany przez: nospor 9.03.2017, 13:49:53

Tez juz o tym mowiles wink.gif

Napisany przez: freewalker 9.03.2017, 21:18:42

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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)