Estoy tratando de evitar, en este caso WordPress, reescribir ciertas URL. En este caso, estoy tratando de evitar que maneje una solicitud en el directorio de carga y, en cambio, los dejo en la página 404 del servidor. Así que estoy asumiendo que es tan simple como añadir la regla:RewriteCond en .htaccess con la condición de expresión regular negada no funciona?
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/
Esta regla debería evaluar en falso y hacer que la cadena de reglas fallan por esas peticiones, deteniendo así la reescritura. Pero no ... ¿Quizás necesito unir la tapa con la cuerda completa en mi expresión?
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/.*$
No, eso tampoco lo es. Entonces, después de rascarme la cabeza, hago un chequeo de cordura. Quizás algo está mal con el patrón real. Así que hago un caso de prueba simple.
RewriteCond %{REQUEST_URI} ^/xyz/$
En este caso, la reescritura sucede si y sólo si la URL solicitada es/xyz/y muestra la página del servidor 404 por cualquier otra página. Esto es exactamente lo que esperaba. ¡Así que me quedaré con un! para negar ese patrón.
RewriteCond %{REQUEST_URI} !^/xyz/$
Ahora estoy esperando ver exactamente lo contrario de la condición anterior. La reescritura no debería ocurrir para/xyz/sino para cualquier otra URL posible. En cambio, la reescritura ocurre para cada URL, ambos/xyz/y otros.
Por lo tanto, o el uso de expresiones regulares negadas en RewriteConds está roto en Apache, o hay algo fundamental que no entiendo al respecto. ¿Cuál es?
El servidor es Apache2.
El archivo en su totalidad: archivo predeterminado
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/
RewriteRule . /index.php [L]
</IfModule>
de WordPress más mi regla.
¿Cuáles son sus reglas de reescritura? Podría haber algo mal con ellos ... –
Agregué el archivo en su totalidad a la pregunta. – nitro2k01