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
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
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.
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.
trueblue
9.03.2017, 13:45:01
nospor, już kiedyś o tym mówiłeś.
Ja mam jednak odmienne zdanie.
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ć

Dzięki jeszcze raz.