Das Standardverhalten von Drupal besteht darin, alle Argumente durchzuleiten, unabhängig davon, ob sie angefordert wurden oder nicht. Manchmal ist dieses Verhalten erwünscht. Ich muss jedoch eine 404 für alles andere als eine Abfragezeichenfolge zurückgeben.
Beispiel für das Problem http://drupal.org/project/modules http://drupal.org/project/modules/google.com <- Dies sollte eine 404 zurückgeben. 200 gegeben. Strafe für doppelten Inhalt!
Die Ansichten 404 Modul geht davon aus, dass Sie standardmäßig nicht wollen Argumente durchlaufen. Es gibt jedoch keine D7-Version des Moduls.
Die Projektseite besagt jedoch, dass 404-Werte für Ansichten auch erzielt werden können, indem Global: Null unter Argumente festgelegt wird.
Offensichtlich sind in D7 "Argumente" jetzt "Kontextfilter", aber ich bin nicht sicher, welche Einstellungen zum Kontextfilter "Global: null" hinzugefügt werden müssen, um das gewünschte Ergebnis zu erzielen.
Jede Hilfe wäre dankbar.
:)
Ich habe die falsche Anzeige bearbeitet, und die Ansicht hat nicht wie gewünscht funktioniert. Es ist nicht erforderlich, PHP-Code zur Validierung des Arguments zu verwenden. Siehe die aktualisierte Antwort.Sie können dies mithilfe der sofort einsatzbereiten Funktionen tun. In jeder kontextbezogenen Filtereinstellung wird ein Kontrollkästchen "Validierungskriterien angeben" angezeigt. Aktivieren Sie dieses Kontrollkästchen, um weitere Einstellungen anzuzeigen.
Dann können Sie "Validator" basierend auf Ihren Ansichtsbedingungen auswählen. Wenn Sie eine benutzerdefinierte Validierung durchführen möchten, wählen Sie den PHP-Code aus. Geben Sie True oder False im PHP-Code basierend auf Ihren Validierungsbedingungen zurück.
Schließlich wählen Sie "Aktion ausführen" als Zugriff verweigert! Der Screenshot unten zeigt den Kontextfilter für nid.
quelle