SMARTY, problem z linkami...

0

mam taki link:

http://forum.exemple.pl/index.php

na końcu tego linka wpiszę ukośnik i jakiś syf mianowicie, np:

http://forum.example.pl/index.php/nic_nieDziala

i tu pojawia się mój problem! Zamiast przekierować stronę na błąd 404, czego nie robi, pokazuje mi tą samą stronę, tylko bez css. Tak jak by sam utworzył katalog nazwał go: nic_nieDziala. Czy przesunął ten plik w drzewie katalogowym.

Czemu tak się dzieje :( ?

0

Masz na serwerze plik 404 ? może zamień jego treść z plikiem NOT FOUND
u mnie wywala wchodząc na link :
[code]Not Found

The requested URL /index.php/nic_nieDziala was not found on this server.
[/code]

więc raczej dobrze ;]

//jeżeli nie masz plików / strony na serwerze nie wywali Ci 404 i aby to robiło musisz zrobić przekierowanie na wypadek braku dokumentu najlepiej w PHP.

0

To specyficzne zachowanie serwera. Apache tak robi, IIS7.5 tak robi (dziwne, mam wrażenie, że IIS7 tego nie robił), lighttpd tak robi, nginx tak nie robi.
Brak CSS wynika pewnie z faktu, że masz jako href wpisane względnie "style.css", a tutaj przeglądarka to potraktuje jako inny katalog z którego już nie ściągnie pliku stylów.

Ale dlaczego tak robią to nie wiem, a z przejrzenia dokumentacji HTTP 1.1 nie ma tam ani słowa, żeby takie zachowanie miało rację bytu. Obstawiam, że Apache zaczął, trochę durnych aplikacji zaczęło z tego korzystać i teraz stało się kolejnym nieoficjalnym pseudostandardem.

0

ale mi tam css nie są potrzebne :) Chodzi o samą istotę, dlaczego coś takiego się odbywa :(? Na hostingu czy localhoscie mam ten sam problem. Jak tego się pozbyć?

0

już po problemie :D można zamknąć TEMAT :P

0

tzn, ogólnie podałem bezpośrednie linki do CSS i zostawiłem to jak jest, to nie jest jakiś duży problem. Bo nawet jak ktoś dopisze na sam koniec linka ukośnik i jakieś tam dane to i tak dalej wyświetla się ta sama strona wiec to nie jest jakiś wielki problem :) najnormalniej to olałem :D można jeszcze porobić wszystkie podstrony przez GETy i na if'ie zaznaczyć else np przekierowanie na stronę z błędem 404, ale to ekstremalne rozwiązanie, wpisanie bezwzględnych ścieżek do CSS jest wygodniejsze :) i po problemie :) Wydaje mi się, że to wina SMARTÓW, a nie serwera :/

0

Wyprowadź se zmienną {$path} w której będzie ścieżka i masz uniwersalny styl działający pod każdym linkiem. Z powodu takiej dziwnej konstrukcji PATH_INFO przeglądarki myślą, że index.php to folder w którym jest plik nic_nieDziala ze skryptem, a serwery zaczynają swoją filozofię. Na tej niezgodności zdań cierpi użytkownik :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1