• Resuelto Irmandinho

    (@irmandinho)


    Hola a todo el mundo.

    Para resolver este problema he intentado de todo y no he sido capaz. El problema consiste en que, tras actualizar WP a las últimas versiones (a partir de la 4), cuando entro en el panel de administración a través de ‘www.dominio.es/blog/wp-admin’ me lleva a dicho panel pero desaparece de la barra de navegación la parte de /blog/, quedando sólo ‘www.dominio.es/wp-admin’. De esta forma, al intentar navegar por el panel o publicar cualquier entrada me lleva directamente a una página de error de «la página que busca no existe». Este problema no me pasaba con las versiones anteriores a la 4, teniendo exactamente la misma configuración en el resto del WP. Si entro a la página sin ser como administrador (como entraría cualquier visitante) puedo ver todo perfectamente y navegar por ella sin problema.

    Adelanto que tengo bien definidos los valores de siteurl y home en la tabla wp-options de la base de datos (con los valores http://www.dominio.es/blog). También la página está dentro del directorio dominio->blog->public-html.

    En el wp-config tengo añadido el siguiente código (si se quita da error al intentar entrar en la página), pero no creo que tenga que ver porque, como dije, con las versiones de WP anteriores no me pasa nada de esto:

    $_SERVER['HTTP_HOST']=$_SERVER['HTTP_X_FORWARDED_HOST'];
    define('WP_HOME','http://www.dominio.es/blog');
    define('SERVER_NAME','http://www.dominio.es/blog');
    $_SERVER['SERVER_NAME'] = 'http://www.dominio.es/blog';
    define('WP_SITEURL','http://www.dominio.es/blog');

    En el .htaccess pasa algo extraño, y es que funciona con esta estructura:

    # BEGIN wordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /blog/
    RewriteCond %{REQUEST_URI} !page
    RewriteRule ^[0-9]{4}\/+[0-9]{2}\/+(.+)$ /blog/$1 [L,R=301]
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    cuando lo normal, por lo que he visto por ahí, sería que en la penúltima línea pusiese así:

    RewriteRule . /blog/index.php [L]

    Si lo pongo así, me da un «Internal Server Error», ni idea de porqué.

    Sin embargo, si pongo un .htaccess como si no tuviese la página en una subcarpeta /blog/ no me da problemas de redirección ni nada:

    # BEGIN wordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !page
    RewriteRule ^[0-9]{4}\/+[0-9]{2}\/+(.+)$ /$1 [L,R=301]
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    Ah! y los plugins (sólo tengo 3) están todos actualizados a la última versión, y también he probado a irlos desactivando a ver si el problema tenía algo que ver, y no.

    Explico estas cosas porque pienso que podrían tener alguna relación con el problema expresado en el primer párrafo y así podemos adelantar algo de tiempo. Lo dicho, con versiones anteriores de WP no había este problema y si vuelvo a «desactualizar» a esas versiones sigue sin haberlo. Sólo con las nuevas.

    Eternamente agradecido al crack o a la crack que sea capaz de echar un cable.

Viendo 3 respuestas - de la 16 a la 18 (de un total de 18)
  • Iniciador del debate Irmandinho

    (@irmandinho)

    De no introducir esa línea, al meter la dirección de la página en la barra del navegador me redirecciona hacia aquí: http://www-php2.ejemplo.es/

    No soy ningún experto, pero creo que el sitio está detrás de un proxy, efectivamente. Trabajo para una institución que pone a disposición particiones de servidor, en una de las cuales tengo la página.

    Iniciador del debate Irmandinho

    (@irmandinho)

    He encontrado el origen del problema, que es la línea:

    $_SERVER[‘HTTP_HOST’]=$_SERVER[‘HTTP_X_FORWARDED_HOST’]

    Es al meter esta línea cuando me da problemas en la URL al estar en el panel de administración. Si quito la línea no me da el problema que nos trajo hasta aquí.

    Sin embargo, al quitar la linea, como comenté más arriba, al entrar en la página web como visitante te redirecciona a http://www-php2.ejemplo.es/, es decir, el nombre del servidor.

    Alguna idea?

    Iniciador del debate Irmandinho

    (@irmandinho)

    Eureka!

    Por fin solucioné el tema. Buscando por ahí encontré a una persona a la que le había pasado lo mismo, copié su solución, y perfecto.

    El tema es que sustituí

    $_SERVER['HTTP_HOST']=$_SERVER['HTTP_X_FORWARDED_HOST']

    por

    $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
    $_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
    $_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME'];
    $_SERVER['PHP_SELF'] = '/blog' . 
    
    $_SERVER['PHP_SELF'];
    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];

    Siendo «blog» la subcarpeta donde tengo instalado WP.

    Gracias a todos por vuestra ayuda. Espero que a alguien le sirva si tiene el mismo problema.

    http://es.wpcures.com/14830/redireccion-no-deseado-en-el-area-de-administracion

Viendo 3 respuestas - de la 16 a la 18 (de un total de 18)
  • El debate ‘El /subdominio/ desaparece de la URL al ingresar al panel de admin’ está cerrado a nuevas respuestas.