Soporte » Multisitio » Reescritura de URLs en multisitio por directorios con NGINX

  • Resuelto Nilo Velez

    (@nilovelez)


    Tengo montado un multisitio para MultilingualPress (el problema es genérico de multisitio, no del plugin).

    Tengo un sitio base, loquesea.com y un sitio hijo, loquesea.com/es

    El problema es que a los directorios de WordPress también le mete el sufijo /es con lo que las urls de los assets quedan así:

    loquesea.com/es/wp-includes/js/admin-bar.min.js
    loquesea.com/es//wp-content/themes/kiteplans/css/style.css

    En un servidor de pruebas con Apache no tengo problema, pero en el momento que lo paso a producción a un servidor con NGINX, no funcionan las reescrituras de los ficheros estáticos y no encuentro por ningún lado la configuración que tengo que usar.

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Iniciador del debate Nilo Velez

    (@nilovelez)

    ¡Gracias! creo que este bloque es lo que necesito:

    # Rewrite multisite in a subdirectory '.../wp-.*' and '.../*.php'.
    if (!-e $request_filename) {
        rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
        rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last;
        rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
    }

    Cuando lo pruebe digo si funciona

    Iniciador del debate Nilo Velez

    (@nilovelez)

    ¡Funcionando!

    Al final lo he cambiado un poco, pero va perfecto:

    En la configuración de NGINX:

    # Rewrite multisite in a subdirectory '.../wp-.*' and '.../*.php'.
    if (!-e $request_filename) {
    	rewrite ^/[_0-9a-zA-Z-]+(/wp-includes/.*) $1 last;
    	rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last;
    	rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
    }

    En el wp-config.php :
    define( 'WP_CONTENT_URL', '/wp-content');

    Con eso, las url con wp-includes quedan así:
    «http://loquesea.comes/es/wp-includes/css/dashicons.min.css»

    Y las del wp-content así:
    «/wp-content/themes/kiteplans/css/style.css»

    No lo he dicho, pero tengo NGINX con la configuración por defecto de Plesk (NGINX como proxy y sirviendo ficheros estáticos y Apache para procesar PHP) y con esta configuración funciona todo aunque active la compresión GZip en NGINX.

    Mil gracias por la ayuda, @kallookoo

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Reescritura de URLs en multisitio por directorios con NGINX’ está cerrado a nuevas respuestas.