Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 167 Pomógł: 0 Dołączył: 30.04.2004 Skąd: Częstochowa Ostrzeżenie: (0%)
|
Witam
Powszechnie mówi się, że wyjątki powinno stosować się do obsługi nieprzewidzianych sytuacji. Czy Waszym zdaniem powinno się je zastosować do obsługi błędnych URLi? Mam taką sytuację, że u mnie błędne URLe są/będą wykrywane na różnym poziomie:
Wszystkie wyjątki łapie frontcontroller i uruchamia przekierowanie. Teoretycznie można by to zrealizować bez wyjątków, ale wydaje mi się że tak jest przejrzyściej. Pytanie tylko czy to trochę nie nadużycie wyjątków, bo przecież w każdym z 3 poziomów jestem w stanie stwierdzić że URL jest niepoprawny i po prostu uruchomić przekierowanie zamiast rzucać wyjątek i nakładać to zadanie na front controllera. Jak uważacie? Pozdrawiam |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Myślę, że najbezpieczniej jest mimo wszystko puścić "pokręcony" url z adnotacja w stronie o canonical. Dzieki temu mimo iż strona zostanie złapana w sieć, to nie sprawi problemu z duplikatem, gdyż wskaże prawidłowy url robotowi. Dzięki temu nie będziesz zmuszony modyfikować kolejności parametrów, ale podasz je w prawidłowej i uniknesz redirecta niepotrzebnego. Jaki będzie efekt po kolei?
Router - usunie duble parametrów, ustawi kontroler, metodę i parametry, Dispatcher - przekaże do kontrolera i jego metody żądanie z parametrami lub wywali, że takiego kontrolera brak (wyjątek) Kontroler - wywoła metodę z odpowiednimi parametrami rozpoznanymi. Sygnalizuje błędne parametry, metody czy brak wymaganych parametrów. Przy wrzucaniu znanych sobie parametrów sprawdza zgodność kolejności parametrów i ewentualnie ustawia canonical. Zauważ jak prostą logiką pozbyłem się niepotrzebnie 301 nadmiarowych i uodporniłem na duplicate content za jednym zamachem. 301 na prawidłowy adres to bowiem nie jedyne rozwiązanie. Stosuj je jedynie gdy faktycznie tak musi być i koniec. Sprawiasz bowiem, że masz więcej żądań niepotrzebnie. 301 powinno być stosowane gdy masz brak danych koniecznych w danym elemencie. Przykładem jest choćby to co robiłem niedawno podczas przepinania ze starej na nową wersję serwisu. W starej wersji w linku był id i kompletnie inna forma SEO niż na nowym. Wymuszało to na mnie dorwanie się do bazy by na podstawie ID pobrać wymagane dla nowego SEO-linku dane. Tego ani router, ani dispatcher nie wykonują, więc musiałem iść aż do kontrolera, który to zrobił i wywołał właściwe 301 ostatecznie. Ale to są jedne z nielicznych przypadków gdzie tak powinno się robić. |
|
|
|
pitbull82 Wyjątki dla błędnych URLi - dobra metoda? 30.03.2011, 10:44:21
thek To zależy jak bardzo aplikacja ma być "elasty... 30.03.2011, 11:08:18
pitbull82 Jest tak jak napisałeś, wszystkie restrykcje są ty... 30.03.2011, 12:24:00
pitbull82 Z jednej strony masz rację, bo rzeczywiście w moje... 30.03.2011, 19:26:33
thek Akurat o ładowanie klas to bym się mało martwił I... 30.03.2011, 21:49:59 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 22:25 |