/ / different 404 pour le sous-répertoire lorsque les chemins sont gérés par index.php - .htaccess, redirect, drupal, http-status-code-404, sous-répertoire

404 différents pour le sous-répertoire lorsque les chemins sont gérés par index.php - .htaccess, redirect, drupal, http-status-code-404, sous-répertoire

J'aimerais /blog/anything-that-doesn"t-exist rediriger vers /blog, alors que tous les autres 404 sont gérés par Drupal.

Mon htaccess a actuellement:

ErrorDocument 404 /index.php

Donc tout est géré par Drupal. Est-il possible d'avoir une règle 404 spécifique à un sous-répertoire, mais la définir à partir du répertoire racine htaccess? le /blog/ Le sous-répertoire est généré par Drupal, donc je ne peux pas "mettre un htaccess écrasant dedans.

Réponses:

0 pour la réponse № 1

Vous pouvez utiliser le code suivant dans votre fichier racine / .htaccess:

 RewriteEngine On


#If /blog/foo is not a directory
RewriteCond %{DOCUMENT_ROOT}/blog/$1 !-d
#And /blog/foo is not a file
RewriteCond %{DOCUMENT_ROOT}/blog/$1 !-f
#Then redirect /blog/foo to /blog
RewriteRule ^blog/(.+)$ /blog/ [NC,L,R]

Il convient de noter que, le temps d'exécution deLa directive RewriteRule et ErrorDocument est différente. La directive RewriteRule s'exécute avant la directive ErrorDocument, donc toute demande de / blog / bad_url sera traitée par la règle ci-dessus, et toutes les autres 404 demandes seront traitées par le ErrorDocument.