Sylar
He estado buscando en la web para agregar una regla de producción en el .htaccess
archivo. Tengo un sitio web de wordpress; uno para la producción y el otro para la puesta en escena.
Cuando se carga un archivo, va a AWS (s3). Necesito evitar este comportamiento para la puesta en escena.
El código que establece la ruta del activo es, en el .htaccess
archivo:
RewriteRule ^wp-content/uploads/(.*)$ https://s3-eu-west-1.amazonaws.com/<BUCKET-NAME>/wp-content/uploads/$1 [R=301,L]
Parece que no puedo encontrar una “declaración if” o algún tipo de condición para usar. Sinceramente, creo que esto no es posible. ¿Lo es?
Solo necesito ejecutar ese código para la producción y no para la puesta en escena. La URL de ensayo es diferente de la producción.
Actualizado
Cada vez que uso lo siguiente, mi sitio web falla:
<If "-z req('Host') == 'www.<PRODUCTION>.com/'">
RewriteRule ^wp-content/uploads/(.*)$ https://s3-eu-west-1.amazonaws.com/<BUCKET-NAME>/wp-content/uploads/$1 [R=301,L]
</If>
If
La directiva funciona en Apache 2.4 y versiones más recientes. En versiones inferiores puedes usar RewriteCond
directiva para reescribir condicionalmente las URL.
Puedes usar algo como esto
RewriteEngine on
#if host == "www.production.com"
RewriteCond %{HTTP_HOST} ^www.production.com$ [NC]
# execute the rule
RewriteRule ^wp-content/uploads/(.*)$ https: //s3-eu-west-1.amazonaws.com/<BUCKET-NAME>/wp-content/uploads/$1 [R=301,L]