A estrutura de links em um blog é extremamente importante tanto para os visitantes como para os motores de busca. Por isso é essencial usar URLs que não apresentem “query strings” que é o caso da URL padrão do WordPress. A idéia é que o endereço de suas páginas sejam amigáveis e fáceis de entender. Aqui vamos mostrar como fazer isso.
Um link com “query string” é por exemplo:
Isso é péssimo, não faz sentido para quem olha e não é possível nem identificar que tipo de página é essa.
Por sorte no WordPress.org podemos modificar a estrutura deste link e escolher a melhor forma de como ele pode aparecer. É importante pensar nisso antes de começar a criar seu blog, pois ficar mudando o link diversas vezes não é recomendável, você irá perder vários links já indexados nos motores de busca e perder visitas, sem contar que seu blog não parecerá profissional.
Este tutorial de hoje serve para complementar o post
Neste outro o Marcos Lemos ensinou como personalizar a estrutura de links para um blog hospedado em um host que usa plataforma Windows, mas agora vamos ver como é feito na plataforma Linux, que usa em sua raiz o arquivo “.htaccess” para configurar os links permanentes.
Leia mais sobre plataformas de hospedagem e qual escolher para seu blog WordPress:
Alterando os Links Permanentes.
Para configurar os links permanentes vá até o seu painel do WordPress, logo em seguida no menu “Configurações” clique em “Links Permanentes”.
Clicando é possível ter acesso ao seguinte painel:
Aqui basta escolher qual será o formato do link. Recomendo que escolha o formato personalizado e escreva neste campo:
/%category%/%postname%/
Desta forma seu links ficará assim:
Isso ajuda muito na hora da indexação e também aos visitantes que lendo o link já saberão um pouco mais do que se trata.
Ainda nessa tela temos a opção “Opcional”, nela é possível alterar o nome base das categorias e das tags. Por padrão elas ficaram assim:
Fazendo alterações neste painel podemos mudar de “category” para “sessão” ou “coluna” por exemplo. Aqui vária de acordo com a sua necessidade.
Depois de pronto basta clicar em “Salvar alterações”. Normalmente se ocorrer tudo certo o WordPress irá criar o arquivo .htaccess sozinho.
Caso não seja possível, será exibida uma mensagem na tela dizendo que você deve atualizar o arquivo manualmente.
Criando o arquivo “.htaccess” para WordPress.
Para fazer isso aconselho que use o Plugin MyFTP para criar ou fazer a alteração de seu arquivo .htaccess.
Crie um arquivo de texto usando o Notepad/Bloco de notas do seu computador. Dentro dele coloque:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Depois de feito clique em “Arquivo” e em seguida “Salvar como…” Coloque o nome do arquivo como “.htaccess”, mude o “Tipo” do arquivo para “Todos os arquivos” e por último a “Codificação” para “ANSI”, finalmente clique em salvar.
Depois de salvo em seu computador volte para o seu blog e clique em configurações e logo em seguida em MyFTP. Em “File to upload:” escolha o arquivo criado recentemente e clique em “Upload To Current Path” para realizar o Upload.
Pronto o arquivo estará na pasta raiz de seu blog e seus links permanentes estarão funcionando com sucesso. Atenção para não escrever nada errado dentro do arquivo .htaccess, qualquer configuração indevida deixará seu blog fora do ar. Caso isso aconteça, delete o arquivo da pasta raiz e tente novamente.
Outros tutoriais de configuração do WordPress.org:
- Deixando seu blog WordPress.org mais rápido: Plugin Hyper Cache
- Limpar e otimizar banco de dados MySQL do WordPress: Plugin WP-Optimeze
- Como editar link permanente de posts no WordPress.org
Sobre o Autor:
Claudio Sanches tem 22 anos e é de São Paulo. É Webdesigner, Programador e está cursando Técnico em Multimidia (SENAC). Curte um Heavy Metal (visite A Ilha do Metal). Portfolio | FaceBook |
Olá Marcos, bom dia!
Sobre o arquivo ".htaccess" fiz td conforme s/dica, mas de dentro do painel blog, não aceitou upload, então fiz por FTP externo, blog saiu do ar. Revisei td e fiz novamente, de novo saiu do ar. Deletei ".htaccess" e voltei td como antes. Mas agora nenhum link funciona; Há como consertar?
Obrigado.
Milton Ramos
@Milton,
A primeira coisa que vc tem de observar é se o seu host é Windows ou Linux.
Se for Windows o procedimento é outro e esse aqui vai dar errado mesmo.
Restaure o backup de seu blog, veja com seu host qual a plataforma. Se for Windows, acima tem o link para o "Web.config".
Olá Marcos! Meu problema é o mesmo do @Ganhar Mais Dinheiro! Meu blog saiu do ar.
Está na plataforma Linux! Como fazer o Backup do meu Site?
Obrigado pelo espaço!
http://www.verweb.com.br
@Alex,
para fazer backup do seu blog no WordPress.org, veja o seguinte link/tutorial:
https://ferramentasblog.com/2009/08/backup-dos-dados-do-wordpress-seu-blog.html
Acredito q o que causou a queda do blog pode ser algum erro na hora de criar o arquivo do tipo ".htaccess". É preciso ter atenção e hospedá-lo corretamente.
Além disso, todas as configurações das etapas do tutorial devem ser seguidas à risca.
Recomendo, por último, seguir esses passos com o auxílio do suporte de sua hospedagem só pra garantir que seu host segue as especificações citadas.
No caso, eu não coloquei nenhum arquivo ".htaccess" em meu Site. De uma hora pra outra ele ficou assim.
Será que teria como eu exportar o Site, reinstalar o WordPress e importar novamente?
Obrigado pela ajuda!
@Alex,
Então esse foi o erro. Para funcionar e o blog voltar ao ar é preciso criar o arquivo como indicado.
Se vc só faz a metade do tutorial, vai dar errado mesmo. Siga todos os passos para que funcione sem problemas. É esse arquivo que faz tudo funcionar sem erros.
Olá @Marcos! Desculpe o incomodo novamente, mas, quando tento fazer upload pelo "Myftp" sempre dá erro. Essa é a mensagem exibida:
"Warning: move_uploaded_file(indexi.php/.htaccess) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/verweb/www/wp-content/plugins/myftp/myftp.php on line 109
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpdX1wND' to 'indexi.php/.htaccess' in /home/verweb/www/wp-content/plugins/myftp/myftp.php on line 109"
Desculpe o incomodo! Obrigado novamente pelo espaço!
@Alex e @Milton os dois tem certeza que é hospedagem Linux certo?
Primeiro me desculpem, mas o código pode estar funcionando errado.
Na hora de publicar aqui ele saiu tudo em uma linha parece que tem algo errado nele, com certeza vocês copiaram o código que esta logo ai acima, vou pedir para o Marcos arrumar.
O correto é:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Porém na hora que faz o procedimento pelo painel do admin do WP ele informa também o código, caso seja necessário copie de lá mesmo.
Se o blog esta fora do ar é bem simples, não precisa ficar assustado, basta deletar o arquivo .htaccess, para isso entre pelo painel de sua hospedagem mesmo.
Ou melhor, faça o login na sua hospedagem, vá até o arquivo .htaccess, clique para editar ele, delete tudo que estiver no arquivo e salve, logo em seguida de permição "644" para o arquivo.
Depois que fizer isso entre dentro do seu blog wordpress, vá até a tela de links permanentes, escolha como será seu link novo e clique para salvar. Se tudo der certo agora o arquivo tem permissão para ser escrito pelo wp e não precisara criar outro arquivo.
@Alex sobre o erro do My FTP talvez sejá por causa de permissão de pasta, você vai precisar dar permissão através do painel de sua hospedagem. Permissões tipo "755" já resolvem o caso.
Qualquer problema é só falar, já me inscrevi para receber os comentários deste post por e-mail.
Obrigado! Mas fiz diferente: Eu exportei todas as postagens, Desinstalei tudo, reinstalei o WordPress e importei tudo de novo. Resolveu meu problema!
Obrigado pela resposta tão rápida!
@Alex, isso com certeza resolve, mas não precisava de tudo isso.
Como eu disse, bastava apenas deletar o arquivo .htaccess e o blog iria continuar funcionando normalmente.
Este arquivo é muito importante, dentro dele podemos editar não apenas os links, mas proteger coisas em nosso blog.
Qualquer alteração indevida pode deixar o blog do ar.
Planejo mais pra frente publicar algo sobre essas coisas de segurança que citei aqui.
Boa noite,
O tutorial esta ótima, mas fiquei com uma dúvida, se devo ou não realizar este método porque ao usar a estrutura personalizada sugerida e confirmar a alteração o wordpress não solicita o WEB.Config nem o .htaccess, porém as páginas ficam com erro 404 e alegam não existir.
Acha que mesmo não solicitando estes arquivos terei que fazer este método? Ou há outra explicação para este erro?
Desde já agradeço o/
Vagner, você esta usando que tipo de hospedagem ou esta fazendo um servidor em seu próprio computador?
Acontece o seguinte, o WordPress pode estar criando automaticamente o arquivo .htaccess sem problema algum.
Porém o Apache do seu servidor não tem habilitado o mod_rewrite.
Agora eu precisava saber se você usa um serviço de hospedagem ou se esta fazendo um servidor em seu pc para rodar o WordPress.
Caso seja uma hospedagem paga, entre em contato com o provedor e peça para habilitar o "mod_rewrite". Se for free e tiver sorte talvez consiga também.
Já se o servidor for local, o seu pc, deve ser o programa que você esta usando para rodar o Apache.
Recomendo que você use o XAMPP (Tem ele para baixar no Baixaki).
Pois o programa depois de instalado já vem com o "mod_rewrite" ativado e o resto de sua configuração roda muito bem o WordPress.
Olá Claudio,
Obrigado por responder.
Entrei em contato com meu servidor e o mod_rewrite esta ativo, mas terei que criar o arquivo .htaccess.
Só queria saber se foi exatamente este o código que usou, porque no Codex do wordpress ele esta diferente
Codex:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Claudio:
RewriteEngine On RewriteBase /
RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]
O if some ao postar o comentário.
Posso utilizar o seu código sem receio? rs
Vagner, para não ter erro faz o seguinte.
Crie dentro da sua hospedagem um arquivo .htaccess, porém deixe ele em branco.
Se possível de permissão nele do tipo 644.
Depois vá para o painel do WordPress como ensinei ai no post, fazendo isso você fará com que o Wp escreva em seu arquivo .htaccess.
Caso ele fale que não tem permissão para isso, altere a permissão do arquivo para 777, depois de alterar o arquivo pelo wp mude de novo para 644.
Assim com o WordPress escrevendo no arquivo evitamos qualquer tipo de erro, já que ele irá criar o arquivo perfeitamente como você precisa.
Nossa muito Obrigado Marcos !
Quando faço as modificações da tudo certo! Porem quando acesso minha página W3 Total Cache, me aparece essa notificação:
It appears Page Cache URL rewriting is not working. If using apache, verify that the server configuration allows .htaccess or if using nginx verify all configuration files are included in the configuration.
BR – Parece Page Cache URL reescrita não está funcionando. Se estiver usando Apache, verifique se a configuração do servidor permite. htaccess ou se nginx usando verificar todos os arquivos de configuração estão incluídos na configuração.
O que pode ser, e o que posso fazer? Tem algum problema ficar assim?
Paulo,
Não sei o que pode ser esse erro. Mas não me parece nada grave, mesmo assim não se pode descartar algum erro no plugin do Cache por conflito.
Olá Claúdio,
Estou com uma dúvida com relação a atualização do arquivo htaccess. Gostaria de saber se o conteúdo que existe dentro do arquivo deve ser apagado, ou se é necessário apenas inserir a atualização no final do arquivo sem nenhuma edição ?
Agradeço se puder me ajudar ..
😀
Olá Claudio, muito bom seu post, cara. Só uma dica que pra mim foi fundamental. Eu fiz tudo que vc escreveu e mesmo assim não funcionava, até que de tanto dentar reparei que o arquivo de texto que fiz tinha uma extensão .txt, ou seja, o nome do arquivo era .htaccess.txt e entao MODIFIQUEI O NOME DO ARQUIVO DIRETO NO MEU HOST PARA .htaccess (sem o txt) e tive que colar novamente o código gerado pelo wordpress, pois ele tinha se danificado. Foi assim depois de muito tentar que funcionou!
Espero ter ajudado aos colegas.
Grande abraço
te devo um chop!
obrigado!
Existe a possibilidade de integrar meu htaccess para um site com o do wordpress para que seja possível continuar usando o site sem que apareça página de erro?
Existe a possibilidade de integrar meu htaccess para um site com o do wordpress para que seja possível continuar usando o site sem que apareça página de erro?
Vou mostrar um exemplo:
Isso é o que está em meu htaccess:
[code]
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
[/code]
Gostaria de acrescentar umas páginas a mais como exemplo:
[code]
RewriteRule ^Parceiros/Parceiros/$ Parceiros.php?CodigoParceiro=$1
RewriteRule ^Parceiros/SiteParceiro/$ sites/Parceiros.php?CodigoParceiro=$1
[/code]
Lembrando que existe uma pasta chamada sites e a página Parceiros.php está no diretório principal do wordpress.
Faz assim é não terá problema
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([a-z0-9-]+)/?$ index.php?pagina=$1 [NC]
desse modo digitando http://www.suapagina.com.br/contato/
e sem barra no final
desse modo digitando http://www.suapagina.com.br/contato
vai funcionar
caso não queria que a barra no final funcione coloca na quarta linha assim
RewriteRule ^(.*)$ index.php?pagina=$1
ao digitar com barra no final vai para pagina 404.html
a pagina 404.html você pode personalizar também no .htaccess
ErrorDocument 404 /404.html
cria pasta 404.html e joga dentro da pasta raiz so seu site
Abraços
errata no final
cria pagina 404.html e joga dentro da pasta raiz so seu site
Eu quero na verdade remover o htaccess porque minha página está fora do ar por conter arquivo com este perfil. Qual o procedimento neste caso?
Marco,
Basta você entrar em seu servidor pelo FTP e procurar o arquivo para excluir.
Obrigado. Enviarei uma mensagem em Contatos para tratar outro assunto. Abs,