Standardowe zachowanie Drupala polega na przekazywaniu wszystkich argumentów, niezależnie od tego, czy zażądały. Czasami takie zachowanie jest pożądane. Jednak muszę zwrócić wartość 404 dla wszystkiego oprócz ciągu zapytania.
Przykład problemu http://drupal.org/project/modules http://drupal.org/project/modules/google.com <- To powinno zwrócić 404; 200 dane. Kara za powielanie treści!
Moduł views 404 zakłada, że domyślnie nie chcesz, aby argumenty były przekazywane. Jednak nie ma wersji D7 modułu.
Ale strona projektu mówi, że 404s dla widoków można również osiągnąć poprzez ustawienie Global: Null w Arguments.
Oczywiście w D7 „argumentami” są teraz „filtry kontekstowe”, ale nie jestem pewien, jakie ustawienia dodać do filtra kontekstowego Global: null, aby uzyskać pożądany rezultat.
Każda pomoc będzie mile widziana.
:)
Edytowałem niewłaściwy ekran, a widok nie działał tak, jak powinien. Nie ma potrzeby używania kodu PHP do sprawdzania poprawności argumentu; zobacz zaktualizowaną odpowiedź.Możesz to zrobić za pomocą widoków po wyjęciu z pudełka. W każdym ustawieniu filtru kontekstowego widać pole wyboru „Określ kryteria sprawdzania poprawności”, zaznacz to, aby wyświetlić więcej ustawień.
Następnie możesz wybrać „weryfikator” w oparciu o warunki wyświetlania. Jeśli chcesz niestandardowo sprawdzić poprawność, wybierz kod php. Zwróć wartość True lub False w kodzie php na podstawie warunków sprawdzania poprawności.
Na koniec wybierz „Akcja do podjęcia”, ponieważ odmowa dostępu do ekranu! Zobacz poniższy zrzut ekranu dla kontekstowego filtra nid.
źródło