Estoy utilizando apache2 y mod-proxy para integrar blogs de wordpress en subdirectorios de mi TLD.
- Sitio principal: example.com
- Blog1: [[http://example.com/blog\]](http://example.com/blog])
- Blog2: [[http://example.com/other-blog\]](http://example.com/other-blog])
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:
- Dirección de WordPress (URL): [[http://example.com/blog\]](http://example.com/blog])
- Dirección del sitio (URL): [[http://example.com/blog\]](http://example.com/blog])
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:
- Usa: [[http://example.com/wp-admin/...\]](http://example.com/wp-admin/...])
- Debería usar: [http://example.com/blog/wp-admin/...]
o
- Usa: [[http://example.com/wp-content/...\]](http://example.com/wp-content/...])
- Debería usar: [http://example.com/blog/wp-content/...]
Lo que he intentado hasta ahora:
- usar varias reglas de reescritura sugeridas
- usar varias modificaciones en wp-config.php encontradas aquí: http://codex.wordpress.org/Editing_wp-config.php#WordPress_address_.28URL.29 *
- buscar en la base de datos de MySQL las URL incorrectas establecidas
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/');