Problema do subdiretório do Wordpress .htaccess

4

Eu tenho tido alguns problemas com a minha instalação do Wordpress, permitindo-me acessar subdiretórios, especificamente uma instalação do CodeIgniter em mydomain.com/codeigniter. Eu sei que, tecnicamente, ele deve funcionar bem e reconhecer as pastas à medida que são criadas. No entanto, isso não está acontecendo. Eu suspeito que tem algo a ver com um plugin, mas eu tentei desativar todos eles e o problema ainda ocorre (direciona-me para a página Wordpress 404).

Eu encontrei uma solução nesse meio tempo, no entanto. Se eu criar um subdomínio, algo muda e tudo funciona como deveria, acessando a pasta pelo caminho direto e pelo nome do subdomínio.

Qualquer ajuda? Eu tentei todos os tipos de coisas divertidas com meus arquivos .htaccess em ambos os diretórios, mas alterá-los não faz nada.

Atualização: Aqui está o .htaccess do Wordpress na pasta raiz:

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?codeigniter/
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

E o arquivo .htaccess do CodeIgniter no subdiretório / codeigniter /.

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /codeigniter
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
    
por Jeff Wain 04.02.2011 / 08:24

1 resposta

3

Mesmo que os diretórios e arquivos estáticos funcionem com uma instalação do wordpress mod_rewrite no servidor raiz, você pode precisar excluir o subdiretório CodeIgniter daquela linha de mod_rewrite.

Você pode fazer isso colocando um arquivo .htaccess adicional no diretório CodeIgniter e desabilitando o mod_rewrite nele:

<IfModule mod_rewrite.c> 
RewriteEngine off
</IfModule>

Relacionados: apache - Desative mod_rewrite para o subdiretório

Isso normalmente faz o trabalho para mim. Mas pode ser menos trivial caso o subdiretório precise de uma configuração de mod_rewrite por conta própria (como alguns Frameworks PHP precisam).

Para entender como funciona a configuração do apache, consulte Arquivos de configuração (Manual do Apache) e Diretiva AllowOverride (Manual do Apache) .

    
por hakre 04.02.2011 / 15:20