O que é importante é a estrutura de arquivos / diretórios subjacente. Se esses três sites estiverem essencialmente na mesma conta - o mesmo diretório pai -, cada site provavelmente estará em um subdiretório separado (que geralmente é como o addon e subdomínios padrão em um ambiente compartilhado) e você deverá ter um arquivo .htaccess
separado em cada subdiretório. Não é um por todos.
UPDATE # 1: Tente adicionar uma exceção ao WordPress .htaccess
para excluir especificamente qualquer nova regra se acessada pelo subdomínio. Por exemplo:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{HTTP_HOST} !^subsite\.example\.net$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
No entanto, isso realmente não deveria ser necessário já que (como mencionado nos comentários), as diretivas mod_rewrite no arquivo .htaccess
do aplicativo independente devem substituí-las completamente (porque o aplicativo independente está em um subdiretório).
A outra limitação ao adicionar código ao bloco WordPress
é que isso pode ser substituído pela próxima atualização.
UPDATE # 2: Como alternativa, tente adicionar a diretiva RewriteOptions
ao arquivo .htaccess
do aplicativo independente (localizado em um subdiretório):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteOptions IgnoreInherit
:
Se isto funcionar, então parece sugerir que existe uma diretiva RewriteOptions InheritDown[Before]
na configuração do servidor que está permitindo que as diretivas mod_rewrite no diretório pai sejam herdadas. Observe que IgnoreInherit
e InheritDown[Before]
são recursos do Apache 2.4+.
(EDIT: Parece que o OP está no Apache 2.2.31, então a diretiva acima resulta em um erro 500 Internal Server.)
UPDATE # 3: Você também pode tentar remover a diretiva RewriteBase /
dos arquivos .htaccess
e remover o prefixo barra na substituição RewriteRule
do WordPress para corresponde as regras no arquivo .htaccess
do aplicativo independente. Então, o arquivo .htaccess
do WordPress se torna:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
# END WordPress
A última linha lida anteriormente: RewriteRule . /index.php [L]
(ou seja, com um prefixo de barra). A barra indica um caminho de URL relativo à raiz, sem a barra agora em relação ao diretório que contém o arquivo .htaccess
.