Suporte » Instalando o WordPress » Como instalar o WordPress na raiz sem dar conflito com subdiretórios?

  • Resolvido wordlove

    (@wordlove)


    Pessoal, eu tenho uma instalação do wordpress na pasta blog, ficando assim:

    http://www.meusite.com/blog

    Até aí tudo bem, essa instalação nunca me deu problemas.

    Eu tenho alguns sites comuns em HTML em subdiretórios:

    http://www.meusite.com/diretório/subdiretório

    Recentemente fiz uma instalação do WordPress na raiz do meu site, coloquei os arquivos do WordPress em public_html (www.meusite.com)

    Quando eu tentei acessar um subdiretório de um site meu depois que fiz a instalação do WordPress na raiz, deu erro dizendo que não foi encontrado:

    http://www.meusite.com/diretorio/subdiretorio

    E o erro que deu era como se eu não tivesse criado um “post” com esse link no WordPress da raiz.

    Como faço para a instalação desse WordPress não ‘pegar’ os subdiretórios pensando que são posts?

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • julio40

    (@julio40)

    wordlove,

    A parada tá loca mesmo, tente não misturar WordPress com outros sites html
    para não dar esse problema. Mas posta ia o link do site para análise.

    Denrrou

    (@denrrou)

    Isto é perfeitamente possível e eu utilizo o wordpress desta forma como você pretende.

    As razões podem ser várias para este tipo de erro. Pode ter a ver com o seu banco de dados ou com a sua estrutura de permalink.

    Porque não coloca alguns links para que possa ser possível dar uma olhada?

    Criador do tópico wordlove

    (@wordlove)

    Eu segui esses procedimentos para deixar o meu site do WordPress com a URL do domínio principal, ele ficou no diretório /site e acessível pelo domínio principal:

    http://codex.wordpress.org/pt-br:WordPress_em_Diret%C3%B3rio_Pr%C3%B3prio

    Mas, eu tenho uns mini-sites (html) em alguns diretórios e subdiretórios como:
    http://www.site.com/mini-site-html e
    http://www.site.com/mini-site/outro-mini-site-html <– e justamente com uma pasta dentro da outra, assim, quando acesso, dá erro 404 de “postagem” não encontrada no WordPress “www.site.com” que eu fiz.

    Ou seja, a instalação WordPress da raiz, está calculando que mini-sites de subdiretórios são postagens da instalação. O que eu devo fazer nesse caso? Tem alguma regra de .htaccess que possa resolver esse problema de links?

    Olá,

    As pastas não podem estar dentro da pasta do WP porque ele lê o está dentro de suas pastas como sendo de seu acesso.

    Ver este tópico relacionado.

    Criador do tópico wordlove

    (@wordlove)

    Oi Diana, mas as pastas dos mini-sites e supbastas não estão dentro da pasta do WP.

    Os arquivos do WP eu segui esse tutorial do WordPress e então eu instalei o WP dentro de uma pasta chamada “site”. Não deixei solto a instalação na raiz do domínio.

    O que eu fiz foi mover o index.php da pasta “site” para a raiz do domínio, como manda o tutorial do link acima.

    E fazendo isso, de colocar o index.php na raiz, eu continuei com os outros arquivos de instalação dentro da pasta “site” só o index que ficou na raiz, mas pegando os arquivos da pasta “site”.

    Aí, na raiz do domínio (public_html) está essa index.php, a pasta /site e as outras pastas que são dos meus mini-sites. E nas pastas dos meus mini-sites, alguns tem outras pastas dentro deles, ficando assim o caminho completo:

    http://www.dominio.com/mini-site/outra-pasta/index.html <– é somente esse caminho que quando o index.php está na raiz interpreta como sendo um artigo do blog.

    Já, o curioso é que se acessar apenas o mini-site, assim: http://www.dominio.com/mini-site <— aí aparece o mini-site html normalmente. Mas com subdiretórios é interpretado como um post inexistente do WP.

    Oi!

    Se acessou site.com/minisite e apareceu uma listagem de arquivos é porque não há um index.html ou index.php na pasta, isso não tem a ver com o WP mesmo.

    Se você precisa acessar site.com/minisite você precisa ter um index.html ou index.php dentro dessa pasta.

    Ex.: No meu site se acessar http://dianakcury.com/conversores/ não tem index, mas dentro de uma das pastas tem, ex.: http://dianakcury.com/conversores/blogorama/

    Criador do tópico wordlove

    (@wordlove)

    Mas o problema é que tem index.html tanto nas pastas, quanto nas subpastas. O problema é que quando o Index.php (do wordpress) está na raíz, se acessar uma subpasta contendo um index.html, é interpretado como uma postagem que não existe… http://www.site.com/minisite/minisite/index.html (erro 404 post não encontrado em http://www.site.com)

    Denrrou

    (@denrrou)

    WordLove, eu entendi seu problema desde o princípio.

    E de fato é perfeitamente possível você fazer isto. Eu mesmo tenho este mesmo tipo de configuração que você almeja:

    http://denrrou.com.br/pages/facebook/sua-empresa-no-facebook

    denrrou.com.br comporta uma instalacão do WP e pages é um subdiretório entre os arquivos do WP.

    O que ocorre é que você tem um problema ao qual não temos como formular nenhuma hipótese sem antes conhecer um pouco mais sobre ele.

    Pode ser algo com seu .htaccess ou na definição de seu site dentro das configurações do WP ou uma série de outras coisas.

    Mas isto é realmente algum problema, pois isto é perfeitamente possível.

    Porque não nos deixa saber qual são as urls afetadas aqui no seu problema para um olhar mais abrangente sobre isto?

    Criador do tópico wordlove

    (@wordlove)

    Bem.. eu não gosto de expor o endereço do meu site em fóruns, até mesmo por uma medida de segurança…

    Mas, acredito mesmo que possa ser regras do .htaccess que possam estar conflitando e gerando esse problema… Segue o código do meu .htaccess da raiz (public_html)

    Options -Indexes
    #Não autoriza listagem de pastas
    
    <Files ~ "^\.(htaccess|htpasswd)$">
      deny from all
    </Files>
    #bloquear arquivos especídifos contra acesso pelas URLs
    
    <FilesMatch "\.(txt|sql|ini)$">
    Deny from all
    </FilesMatch>
    #bloquear acessar pela URL txt, sql e ini
    
    <Files wp-config.php>
    order allow,deny
    deny from all
    </Files>
    #Protege o wp-config de acessos
    
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^mydomain.com
    RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [L,R=301]
    # Redirecionar URL sem www para www
    
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.html -f
    RewriteRule ^(.*)$ $1.html
    # Replace html with your file extension, eg: php, htm, asp
    #Oculta extensões HTML de páginas
    
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.htm -f
    RewriteRule ^(.*)$ $1.htm
    # Replace html with your file extension, eg: php, htm, asp
    #Oculta extensões HTM de páginas
    
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php
    # Replace php with your file extension, eg: php, htm, asp
    #Oculta extensões PHP de páginas
    
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4.0[678] no-gzip
    BrowserMatch bMSIE !no-gzip !gzip-only-text/html
    #Aliviar peso de página para visitantes
    
    ErrorDocument 400 http://www.mydomain.com/errors/400.html
    ErrorDocument 401 http://www.mydomain.com/errors/401.html
    ErrorDocument 403 http://www.mydomain.com/errors/403.html
    ErrorDocument 404 http://www.mydomain.com/errors/404.html
    ErrorDocument 500 http://www.mydomain.com/errors/500.html
    #páginas de erro personalizadas
    
    redirect 301 /hospede-aqui.html http://www.mydomain.com/blog/hospede-todo-tipo-de-arquivos-gratis-no-dropbox/
    # redireciona URL antiga para URL nova
    
    # Protege contra spam bots nos comentários
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
    RewriteCond %{HTTP_REFERER} !.mydomain.com.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
    </IfModule>
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^wp-admin/includes/ - [F,L]
    RewriteRule !^wp-includes/ - [S=3]
    RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
    RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
    RewriteRule ^wp-includes/theme-compat/ - [F,L]
    # Bloquear contra acessos na área de scripts do wordpress no wp-include
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    Criador do tópico wordlove

    (@wordlove)

    Gente… Percebi uma coisa incomum!!! Os subdiretórios que estão sendo detectados como uma postagem do WP da raiz são os que dentro deles tem uma proteção HTTP (.htaccess com .htpasswd) ou seja, pedem senha de autenticação (eu coloquei essa proteção, pois preciso dela em alguns subdiretórios).

    os outros que não tem essa proteção, estão abrindo normalmente, vejam:

    http://www.site.com/diretorio/subdiretorioprotegido (dá erro de postagem não encontrada)

    http://www.site.com/diretorio/subdiretoriodesprotegido (acessa normal OK)

    Dentro dos subdiretórios que tem a proteção HTTP tem esse .htaccess chamando uma pasta de htpasswd:

    AuthType Basic
    AuthName "Acesso Restrito"
    AuthUserFile "/home/usuario6/public_html/htpasswds/.htpasswd"
    require user usuario2013
    
    ErrorDocument 400 http://www.site.com/acesso-negado.html
    ErrorDocument 401 http://www.site.com/acesso-negado.html
    ErrorDocument 403 http://www.site.com/acesso-negado.html
    ErrorDocument 404 http://www.site.com/acesso-negado.html
    ErrorDocument 500 http://www.site.com/acesso-negado.html
    #páginas de erro personalizadas
    Denrrou

    (@denrrou)

    Olhando rapidamente não tem nada estranho com seu .ht

    E a coisa pode ser mais complexa e eu não se vai funcionar, mas em uma sugestão bem rápida eu diria que tentasse duas coisas:

    1) Não estou absolutamente certo, mas penso que você não precisa destas aspas no AuthUserFile, de modo que você pode tentar sem elas.

    Faça um backup destes .htaccess que estão dentro dos seus diretórios protegidos e tente sem as aspas, assim: /home/usuario6/public_html/htpasswds/.htpasswd

    Se não funcionar:

    2) Tente este aqui:

    ErrorDocument 401 /SEU-SUBDIRETÓRIO/401.html
    AuthType Basic
    AuthName “…HEY, CADÊ A SENHA?! =)”
    AuthUserFile /home/USERNAME/.htpasswds/public_html/SEU-SUBDIRETÓRIO/passwd
    <Limit GET>
    require valid-user
    </Limit>

    Se ambas as coisas não funcionarem volte e deixe todo mundo saber os seus resultados, pois então é alguma outra coisa assustadora e que precisa ser melhor analisada.

    Mas pelo menos você já sabe que é a sua autenticação, e agora é uma mera questão de ajustar isto.

    Criador do tópico wordlove

    (@wordlove)

    Eu fiz os procedimentos mas não deu certo…

    O problema acontece em qualquer diretório que tem o .htaccess protegendo ele… Pelo menos eu identifiquei o problema, agora só falta saber a causa que faz acontecer isso rs..

Visualizando 12 respostas - 1 até 12 (de um total de 12)
  • O tópico ‘Como instalar o WordPress na raiz sem dar conflito com subdiretórios?’ está fechado para novas respostas.