Estou usando o apache2 e o mod-proxy para integrar blogs do wordpress em subdiretórios do meu TLD.
- site principal: example.com
- Blog1: [ link
- Blog2: [ link
Host virtual Apach2 do site principal com proxy:
<VirtualHost *:80>
ServerName example.com
...
# Rewrite rule to add missing slashes
RewriteRule ^/blog$ /blog/ [R=301]
RewriteRule ^/other-blog$ /other-blog/ [R=301]
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests off
ProxyPass /blog/ http://blog1.localhost/
ProxyPassReverse /blog/ http://blog1.localhost/
ProxyPass /other-blog/ http://blog2.localhost/
ProxyPassReverse /other-blog/ http://blog2.localhost/
...
</VirtualHost>
Hosts virtuais do Apach2 para blogs:
<VirtualHost *:80>
ServerName blog1.localhost
DocumentRoot /var/www/blog1/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
Linux hospeda linhas de adição de arquivo:
127.0.0.1 blog1.localhost localhost.localdomain
127.0.0.1 blog2.localhost localhost.localdomain
Wordpress: configurações > Configurações gerais:
- endereço do WordPress (URL): [ link
- Endereço do site (URL): [ link
O arquivo .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Esta configuração funciona bem em geral. Infelizmente, o back-end do Wordpress tem problemas em algumas partes, removendo as sub-pastas em URLs, resultando em problemas de salvar configurações ou carregar imagens. por exemplo:
- Usos: [ link
- Deve usar: [ link blog / wp-admin /...]
ou
- Usos: [ link
- Deve usar: [ link blog / wp-content /...]
O que eu tentei até agora:
- usou várias regras de reescrita sugeridas
- usou várias modificações em wp-config.php encontradas aqui: link *
- pesquisou o banco de dados mySQL por URLs configurados incorretamente
Nada disso funcionou até agora ou piorou ainda mais.
Se alguém tiver uma ideia de como resolver este problema, eu apreciaria muito isso.
*) Edit: O que eu já tentei aqui:
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/');