Não é possível acessar subdiretórios que não sejam wordpress, pois o wordpress os substitui por um erro 404

30

Refiro-me a essa pergunta feita anteriormente e não respondi adequadamente: Wordpress substituindo os subdiretórios reais e também Páginas / códigos que não são "Wordpress" recebendo código 404

Eu tenho o mesmo problema e tentei quase tudo que encontrei na net. É definitivamente relacionado a ter permalinks ligados no wordpress. No entanto, eu coloquei um novo arquivo .htaccess no subdiretório com:

RewriteEngine off

e o problema ainda existe. Mesmo se eu excluir completamente o arquivo .htaccess wordpress, o problema ainda existe.

Eu também tentei algumas outras soluções sugeridas, como ErrorDocument 401 "Acesso não autorizado" e ErrorDocument 404 "Acesso não autorizado" e Redirecionar 301 / mysubdirectory enlace em vários locais, tudo sem sucesso.

Alguém pode, por favor, oferecer outra solução? A única maneira de consertar é desligar os permalinks, mas precisamos que eles estejam ligados.

Obrigado,

Nicole

    
por Nicole 16.06.2011 / 09:54
fonte

8 respostas

27

Suponho que você coloque o WordPress na raiz do seu site e os diretórios externos também estão na raiz do seu site. A razão pela qual isso está acontecendo é que os arquivos .htaccess seguem uma hierarquia. Seja qual for diretivas estão no fluxo de arquivo. Htaccess de nível superior e se aplicam a todos os diretórios abaixo dele.

Se este for o caso, você pode fazer uma de várias coisas:

  1. Mova seu WordPress para seu próprio diretório. Veja: enlace Se você mover o WordPress para seu próprio diretório para que ele fique no mesmo nível da hierarquia de diretórios do servidor que os outros diretórios, as regras de reconfiguração do WordPress não poderão afetar os outros diretórios.

  2. RewriteEngine Off - isso normalmente funcionaria. Se não estiver funcionando, verifique se você não está usando uma configuração de DNS curinga. Se você tiver um registro de nome de host curinga * apontando para seu servidor da Web nas configurações de DNS, isso poderá causar estragos com .htaccess e subdomínios.

  3. No arquivo .htaccess na raiz do seu site, adicione o seguinte ACIMA das diretivas do .htaccess do WordPress:

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>
    

Um deles deve funcionar para você.

    
por Elpie 17.06.2011 / 16:33
fonte
17

Isso funcionou para mim no passado para uma situação semelhante:

Coloque isso em cima de .htaccess

ErrorDocument 401 default
    
por mike23 16.06.2011 / 11:39
fonte
3

quando eu copio meus arquivos para o mesmo servidor, mas com pasta subdiretório diferente, então quando eu tentei acessar minhas páginas, index.php está funcionando bem, mas as outras páginas não estão e me dando um erro 404. Desculpe pelo meu mau inglês !!

Acabei de pesquisar no meu htaccess o original:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

e coloque o novo com

# BEGIN WordPress

RewriteEngine On
RewriteBase /subdirectoryfolder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryfolder/index.php [L]

# END WordPress
    
por lizette 13.09.2012 / 13:14
fonte
3

Eu vejo este tópico há alguns meses, mas caso você nunca tenha conseguido que ele funcionasse!

Eu tive um problema semelhante, mas meu problema era que a instalação do wordpress estava localizada no subdiretório que impedia o acesso da URL a pastas dentro da raiz (fora do diretório de instalação do WP), mas apenas quando os permalinks estavam habilitados. Para resolver isso, eu copiei index.php e .htaccess (copy not move) do subdiretório onde a instalação do WP está localizada e coloquei ambos na raiz public_html (ou qualquer subdiretório que você esteja tentando acessar fora da instalação do WP diretório). O arquivo .htaccess já possui as condições de reescrita dos permalinks:

RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Ativar permalinks para atualização e resolveu todos os problemas. Verifique se suas permissões para as pastas raiz estão definidas corretamente, pois isso me causou problemas no passado.

    
por Kirsten Douglas 25.05.2012 / 20:46
fonte
2

Se você ainda está recebendo os 404's com o htaccess desativado e você verificou os caminhos e você sabe que os arquivos estão lá, então suas únicas opções restantes são essas três ...

Opções ...

  1. O servidor está possivelmente executando um sistema operacional que diferencia maiúsculas de minúsculas. O que significa que, se você estiver digitando em um caminho e não usar os caracteres exatos e a caixa, isso simplesmente não funcionará.
  2. Permissões: Você pode ter as permissões erradas no arquivo ou na pasta ou em uma pasta pai. Tente alterar as permissões para 755 nos arquivos, pastas e pastas pai. Se você tiver acesso ssh (terminal) a ele, vá para a sua raiz e execute este "chmod -R 755 mydir" e isso irá definir recursivamente as permissões para todos eles.
  3. Se você ainda está tendo um problema depois de tudo isso, então você tem um problema de configuração do servidor (provavelmente o Apache). Você precisará conversar com seu provedor de hospedagem sobre isso.

Se nada disso funcionar, você precisará de um novo host. Eu recomendo hostmonster.com para hospedagem barata que tem grande apoio e oferece acesso SSH. Eu os uso, custa cerca de US $ 5 por mês. Se você precisa de algo mais robusto e escalável, mas que ainda tenha bons preços, recomendo mediatemple.net. Eles oferecem hospedagem escalável em nuvem a partir de US $ 20 por mês. Embora eu só vá com a segunda opção se você espera ver aumentos dramáticos no tráfego ou se você já tem um tráfego muito alto (estou falando de 500-1.000 + por hora).

    
por pthurmond 17.06.2011 / 16:44
fonte
2

Depois de quase arrancar meu cabelo editando o htaccess eu finalmente encontrei uma solução que funciona para o WordPress.

Eu tive esse problema depois de instalar um script codeiginter no mesmo diretório raiz que o WordPress está instalado.

Depois de tentar todos os truques listados aqui, eu ainda estava recebendo erros 404 nas páginas associadas ao novo script.

Eu notei que o htaccess do WordPress estava substituindo o htaccess do script. Também notei que outras instalações do WordPress no mesmo diretório não tinham esse erro 404.

Eu simplesmente adotei o htaccess da nova instalação do WordPress no mesmo diretório do servidor e o adicionei na pasta onde meu script está localizado. Aqui está como parece:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdirectoryname/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryname/index.php [L]
</IfModule>

Substitua subdirectoryname pelo nome do seu diretório e coloque este arquivo htaccess dentro da pasta onde seu script está localizado.

Exemplo: se o site estiver instalado aqui

public_html/

e a nova pasta está localizada

'public_html/example'

copie o htaccess acima e salve-o dentro da pasta 'example' e isso deve funcionar.

    
por NJENGAH 10.12.2015 / 14:59
fonte
0

Você deve poder adicionar apenas uma diretiva RewriteCond que garantirá que as regras do WordPress sejam ignoradas para solicitações dentro de sua subpasta.

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

No entanto, você diz que, mesmo com não WordPress .htaccess , você está tendo o problema? Qual é o conteúdo do seu subdiretório .htaccess ?

    
por TheDeadMedic 16.06.2011 / 10:58
fonte
0

Eu olhei as respostas aqui várias vezes enquanto eu me deparava com um problema semelhante. Eu tenho arquivos em um subdiretório que lançaria um erro 404 quando eu tentei acessá-los. Todo o material do .htaccess não conseguiu corrigir, como diz Kirsten Douglas, o Wordpress já faz o trabalho.

Minha solução

Eu encontrei este artigo depois de verificar o error_log no servidor. Eu estava recebendo uma mensagem sobre o erro errado para os scripts. Eu também notei que o 404 não estava sendo lançado por causa do arquivo, mas porque o servidor não podia servir um arquivo 500.html, ou seja, eu tinha um erro 500.

Acontece que eu criei arquivos como root e precisei alterar a propriedade para o proprietário do webfiles.

Espero que isso ajude outras pessoas que tiveram o mesmo problema!

    
por Dan 02.10.2013 / 09:54
fonte