4 votos

URLs incorrectas en wp-admin en WordPress con subdirectorio y proxy

Estoy utilizando apache2 y mod-proxy para integrar blogs de wordpress en subdirectorios de mi TLD.

Host virtual de Apache2 del sitio principal con proxy:

ServerName example.com

...

# Regla de reescritura para agregar barras faltantes
RewriteRule ^/blog$ /blog/ [R=301]
RewriteRule ^/other-blog$ /other-blog/ [R=301]

Order deny,allow
Allow from all

ProxyRequests off
ProxyPass /blog/ http://blog1.localhost/
ProxyPassReverse /blog/ http://blog1.localhost/
ProxyPass /other-blog/ http://blog2.localhost/
ProxyPassReverse /other-blog/ http://blog2.localhost/

...

Hosts virtuales de Apache2 para los blogs:

ServerName blog1.localhost
DocumentRoot /var/www/blog1/

Options FollowSymLinks
AllowOverride All

Agregar líneas al archivo de hosts de Linux:

127.0.0.1     blog1.localhost localhost.localdomain
127.0.0.1     blog2.localhost localhost.localdomain

Wordpress: Configuración > Configuración general:

El archivo .htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Esta configuración funciona bien en general. Desafortunadamente, el panel de administración de Wordpress tiene problemas en algunas partes al eliminar los subdirectorios en las URL, lo que resulta en problemas para guardar configuraciones o cargar imágenes. por ejemplo:

o

Lo que he intentado hasta ahora:

Ninguna de estas opciones funcionó hasta ahora o empeoraron la situación.

Si alguien tiene una idea de cómo resolver este problema, lo apreciaría mucho.

*) Edición: Lo que he intentado aquí:

define('WP_HOME',  'http://' . $_SERVER['HTTP_HOST'] . '/blog');
define('WP_HOME', 'http://example.com/blog');
define('WP_SITEURL', 'http://example.com' . $_SERVER['SERVER_NAME'] . '/blog');
define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] . '/blog');
define('WP_SITEURL', 'http://example.com/blog/');

1voto

Shane Madden Puntos 81409

Las rutas absolutas (y incorrectas) están en el contenido generado por WordPress: no hay forma de reescribirlas con Apache (¿cómo sabría Apache a qué blog se refiere cuando un cliente solicita /wp-content?).

Modificar la URL del sitio en la configuración de WordPress es el camino correcto.

Para la instancia del blog1:

define('WP_SITEURL', 'http://example.com/blog');

Para la instancia del blog2:

define('WP_SITEURL', 'http://example.com/other-blog');

¿Qué has intentado y qué comportamiento has observado?

0voto

iOS Developer Tips Puntos 1640

Puede que necesites mover tus instalaciones de WordPress a un subdirectorio para resolver este problema. Una vez hecho eso, edita tus reglas de reescritura para que se parezcan a algo así:

RewriteEngine On
RewriteBase /blog1/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog1/index.php [L]

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X