Z punktu widzenia SEO ten sam link z trailing slash
jest inny niż link bez niego. Zaleca się, aby zawsze używać jednego schematu (linków ciągniętych lub nie ciągniętych).
Chociaż istnieją różne szkoły, z których jedna jest lepsza, najważniejsze jest przekierowanie 301 z "niewłaściwego" adresu URL do poprawnego. Możesz to osiągnąć całkiem łatwo w Play z "Dynamic part spanning several /".
Osobiście wolę wersję bez spływu, być może dlatego, że jej implementacja w grze przypomina pisanie kilku prostych linii. Dodaj do swoich tras złożyć tę regułę, gdzieś na początku (zachować ukośnik - to ważne, ponieważ to nie jest uważane za kolejnym cięciem w Spanning-Group, i pozwala dopasować opryskiwacz URL łatwo): wtedy
GET /*path/ controllers.Application.untrail(path: String)
ty można po prostu zrobić przekierowanie w kontrolerze - do param, więc będzie bez ukośnika na końcu:
Java
public static Result untrail(String path) {
return movedPermanently("/" + path);
}
Scala
def untrail(path: String) = Action {
MovedPermanently("/" + path)
}
Do tej pory wszystkie trasy kończące się ukośnikiem zostaną przekierowane do wersji niezamkniętej. Łatwo :)
Oczywiście zdecydowanie zaleca się używanie odwrotnego routera do generowania poprawnych adresów URL - aby zminimalizować zbędne przekierowania. Również, jeśli gdzieś twardo kodujesz adres URL (np. W jakimś JS lub w zewnętrznej aplikacji), lepiej też pisać poprawne, zamiast tego za każdym razem je konwertować. Jeśli planujesz opublikować jakiś publiczny interfejs API, zanotuj w dokumentacji, jaki wzorzec ma Twoja aplikacja, więc programiści zostaną ostrzeżeni i (być może) przygotują poprawne połączenia.
Co więcej - najważniejsze dla tras GET
, ponieważ są one przedmiotem manipulacji ze strony klienta. Podczas korzystania z POST
, PUT
, DELETE
i innych nie potrzebujesz (lub raczej nie powinieneś) dbać o przekierowania, ponieważ nie mogą być zmienione przez użytkownika iw ten sposób musisz zapamiętać, w jaki sposób wybierzesz. W przypadku złego połączenia np. w przypadku POST wystarczy zwrócić błąd 404 - więc deweloper trzeciej aplikacji częściowej będzie zobowiązany do używania poprawnych zakończeń.
Bardzo dobra odpowiedź, spróbuję ... – opensas
Dzięki. W Scali wygląda to tak: def untrail (ścieżka: String) = Akcja {MovedNerwalnie ("/% s" .format (ścieżka))} –
@ ChristopherMartin, thanx, skopiowałem twoją próbkę do odpowiedzi – biesior