WordPress como subdomínio em proxy reverso no apache

Instalar o WordPress com proxy reverso no apache é algo trivial, como qualquer outra aplicação, agora, se o site WordPress for chamado por um subdomínio e você necessitar utilizar Links Permantes com mod_rewrite, ai pode complicar um pouco.

Howto: Como habilitar Links Permanentes (permalinks mod_rewrite) no WordPress como Proxy Reverso do Apache

1. Chamada do subdominio:

<virtualhost *:80>
        ServerName sub.host.com.br
        ServerAlias www.sub.host.com.br

        ProxyPass / http://192.168.0.10/sub/
        ProxyPassReverse / http://192.168.0.10/sub/

        CustomLog /var/log/httpd/sub-access.log combined
        ErrorLog  /var/log/httpd/sub-error.log
</virtualhost>

2. Habilite Links Permanentes no WordPress com a estrutura desejada (Configurações – Links Permanentes)

É muito utilizado esta estrutura: http://sub.host.com.br/%postname%/ para aparecer somente o nome do post após a URL, ou seja, ativando links permanentes não será mais exibido algo como ?page_id=10 para o identificar o post ou page.

Caso não execute os passos seguintes, ao acessar um post ou page qualquer, será exibido este erro:
Not Found
The requested URL /index.php was not found on this server.

3. O pulo do gato é utilizar um plugin da Universidade de Stanford:

Salve este arquivo na pasta wp-content/plugins com o nome de su_reverse_proxy.php e ative-o na interface de administração do WordPress.

4. Na raiz da instalação do seu WordPress, edite o arquivo .htaccess, este passo é muito importante.

# vim .htaccess

Você vai alterar somente a linha do RewriteRule, que deve estar assim:

RewriteRule . /index.php [L]

E deverá ficar assim:

RewriteRule . /sub/index.php [L]

Claro, se estiver usando nginx, existe soluções mais elegantes:
https://wordpress.org/plugins/nginx-compatibility/
https://wordpress.org/support/topic/permalink-problem-on-nginx

Leave a Reply

Your email address will not be published. Required fields are marked *