olechafm
10.05.2011, 16:18:07
Routerem przeszukuje adres URL. Gdy nie znajdę kontrolera bo go nie ma - pusta tablica po weryfikacji URL lub po weryfikacji ta nazwa kontrolera nie jest poprawna, wywołuje domyślny kontroler.
W takiej sytuacji gdy nie znajdę w URL poprawnej nazwy kontrolera, ale jednak coś tam jest:
a. powinienem zignorować to co jest w URL i dla wybranego domyślnego kontrolera uruchomić domyślną akcję np. index() bez parametrów, niezależnie co w tym adresie się znajduje
czy może
b. powinienem sprawdzić czy to co mam w URL nie jest przypadkiem wywołaniem akcji dla domyślnego kontrolera, innej niż jego akcja domyślna (np. index()) - sytuacja gdy adres jest wpisany np. tak www.strona.pl/akcja/par1/par2/par3
Zakładam, że gdy chce świadomie wywołać akcję inną niż domyślna, to jasno deklaruję wybór kontrolera np. www.strona.pl/kontroler_domyslny/akcja_inna_niz_domyslna/
pzdr
olechafm
Mr Albert
10.05.2011, 16:43:28
Gdy nie odnajdujesz strony bo adres jest zły lepiej wywalić exception i obsłużyć go z odpowiednim komunikatem. Wg mnie jest to bardziej logicznie niż kierowanie na domyślny kontroler.
@Down
Tak. Zdecydowanie jest to lepsze niż przekierowywać na domyślny kontroller.
olechafm
10.05.2011, 16:50:35
czyli co np. wysypać mu 404 albo podstronę informującą o tym że podany adres nie istnieje? w przypadku akcji również błąd czy na domyślną akcję ?
erix
10.05.2011, 20:09:47
Odpowiem - to zależy.
Czasem potrzeba sprawdzania wielopoziomowego (np. wywoływanie odpowiedniego kontrolera, a jeśli nie istnieje - strona statyczna o nazwie podobnej do kontrolera), wtedy to ma sens.
W przeciwnym przypadku 404. Obojętnie, czy kontroler, czy akcja. Duplicate content, to Twój wróg.
olechafm
11.05.2011, 08:14:04
Dzięki bo już się tak zapętliłem w sprawdzaniu warunków dla różnych sytuacji i kombinacji istnienia kontrolera, akcji i parametrów, że zgubiłem cały sens tego sprawdzania...
Wnioskuję, że jeśli sprawdzanie wielopoziomowe akurat nie jest w moim przypadku konieczne, to zwalam wszystko na 404 a domyślne akcje dla kontrolerów wywołuję wtedy tylko, gdy adres zawiera poprawny kontroler bez podania akcji (analogicznie gdy niema podanych żadnych danych - domyślny kontroler z domyślną akcją).
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.