El comportamiento estándar de Drupal es pasar todos los argumentos, ya sea que lo hayan solicitado o no. A veces se desea este comportamiento. Sin embargo, necesito devolver un 404 para cualquier cosa que no sea una cadena de consulta.
Ejemplo del problema http://drupal.org/project/modules http://drupal.org/project/modules/google.com <- Esto debería devolver un 404; 200 dados. Contenido duplicado penalización!
El módulo de vistas 404 asume que, de forma predeterminada, no desea pasar los argumentos. Sin embargo, no hay una versión D7 del módulo.
Pero la página del proyecto dice que los 404 para las vistas también se pueden lograr estableciendo Global: Null en Argumentos.
Obviamente en D7 los "argumentos" ahora son "filtros contextuales", pero no estoy seguro de qué configuraciones agregar al Global: filtro contextual nulo para obtener el resultado deseado.
Cualquier ayuda sería apreciada.
:)
Estaba editando la pantalla incorrecta y la vista no funcionaba como debería. No hay necesidad de usar código PHP para validar el argumento; ver la respuesta actualizadaPuede hacerlo utilizando las vistas de la funcionalidad lista para usar. En cada configuración de filtro contextual puede ver una casilla de verificación "Especificar criterios de validación", verifique eso para ver más configuraciones.
Luego, puede seleccionar "validador" en función de las condiciones de su vista. Si desea validar de forma personalizada, seleccione el código php. Devuelve Verdadero o Falso en el código php según sus condiciones de validación
Finalmente, seleccione "Acción a tomar" como Acceso de pantalla denegado. Vea a continuación la captura de pantalla para el filtro contextual nid.
fuente