.htaccess omite el manejo de errores de WordPress 404 para archivos estáticos .
<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>
Nota: Estas reglas fueron generadas por el plugin W3 Total Cache *
Nginx omite el manejo de WordPress 404 para archivos estáticos.
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;
}
No estoy seguro de que esto sea posible. Si observa el código htaccess que WordPress crea cuando habilita los enlaces permanentes, básicamente dice: "Si no se puede encontrar el archivo / directorio, envíelo a index.php". Esto incluye todas las solicitudes 404 reales. Además de crear una lista de todos los recursos públicos generados dinámicamente que WordPress conoce e insertarlos directamente en .htaccess, deberá cargar php para manejar los 404.
fuente
Me gustó la idea de Chris_O , pero hice mi propia versión, que es más segura.
Entonces, lo que hice fue agregar carpetas a la excepción, por lo que si sus solicitudes comienzan desde esas líneas, definitivamente no es un enlace permanente válido. La mayoría de las solicitudes provienen de bots que intentan verificar los contenidos de esas carpetas en busca de vulnerabilidades. Se filtrarán de manera efectiva y, si es necesario, puede mostrar una pequeña página 404 estática.
Wordpress seguirá manejando otras solicitudes, y si alguien ingresa una dirección incorrecta, mostrará un mensaje amigable no encontrado dentro de su plantilla. La solución de Chris_O solo funcionará para solicitudes que parecen extensiones de archivo, de lo contrario, también serán manejadas por WordPress.
Para hacerlo aún más confiable, puede recuperar su archivo de acceso sin procesar y buscar errores 404. Si observa muchas solicitudes que comienzan con líneas particulares, también puede incluirlas en este filtro:
fuente
Tengo múltiples CMS instalados en mi sitio, así que uso algo como esto para usar la misma página de error 404 para todos los CMS. Uso este conf para Nginx + FastCgi y funciona bien:
Yo uso esta configuración junto con esto en php.ini:
Wordpress se instala así http://example.com/wordpress/ . el 404.html se encuentra en la raíz de http://example.com/ .
PD No olvide que los servicios PHP y Nginx deben reiniciarse después de realizar cambios en los archivos php.ini o nginx.conf para que los cambios surtan efecto.
fuente
Hay 3 formas de hacer esto
Tutorial completo - (enlace muerto y redirigido a spam)
fuente