.htaccess ignore la gestion des erreurs WordPress 404 pour les fichiers statiques .
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(robots\.txt|sitemap\.xml(\.gz)?)
RewriteCond %{REQUEST_FILENAME} \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [NC]
RewriteRule .* - [L]
</IfModule>
Remarque: Ces règles ont été générées par le plug-in W3 Total Cache *
Nginx ignore la gestion de WordPress 404 pour les fichiers statiques.
if (-f $request_filename) {
break;
}
if (-d $request_filename) {
break;
}
if ($request_uri ~ "(robots\.txt|sitemap\.xml(\.gz)?)") {
break;
}
if ($request_uri ~* \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$) {
return 404;
}
Je ne suis pas sûr que ce soit possible. Si vous regardez le code htaccess que WordPress crée lorsque vous activez les permaliens, il dit essentiellement: "Si le fichier / répertoire est introuvable, envoyez-le à index.php." Cela comprend toutes les 404 demandes réelles. En dehors de la création d'une liste de toutes les ressources publiques générées dynamiquement que WordPress connaît et de l'insertion directe dans .htaccess, vous devrez charger php pour gérer les 404.
la source
J'ai aimé l'idée de Chris_O , mais j'ai fait ma propre version, qui est plus sûre.
Donc, ce que j'ai fait, j'ai juste ajouté des dossiers à l'exception, donc si vos demandes commencent à partir de ces lignes - ce n'est certainement pas un permalien valide. La majorité des demandes proviennent de bots qui essaient de vérifier le contenu de ces dossiers pour détecter les exploits. Ils seront efficacement filtrés, et si nécessaire, vous pouvez afficher une petite page 404 statique.
Les autres demandes seront toujours traitées par wordpress, et si quelqu'un entre une mauvaise adresse, il affichera un message convivial introuvable dans votre modèle. La solution de Chris_O ne fonctionnera que pour les requêtes qui ressemblent à des extensions de fichier, sinon elles seront également gérées par wordpress.
Pour le rendre encore plus fiable, vous pouvez récupérer votre fichier d'accès brut et rechercher les erreurs 404. Si vous remarquez de nombreuses demandes commençant par des lignes particulières, vous pouvez également les inclure dans ce filtre:
la source
J'ai plusieurs CMS installés sur mon site, donc j'utilise quelque chose comme ça pour utiliser la même page d'erreur 404 pour tous les CMS. J'utilise cette conf pour Nginx + FastCgi et ça marche bien:
J'utilise cette configuration avec ceci dans php.ini:
wordpress est installé comme ceci http://example.com/wordpress/ . le 404.html est situé à la racine du http://example.com/ .
PS N'oubliez pas que les services PHP et Nginx doivent être redémarrés après avoir apporté des modifications aux fichiers php.ini ou nginx.conf pour que les modifications prennent effet.
la source
Il y a 3 façons de procéder
Tutoriel complet - (lien mort et redirigé vers le spam)
la source