Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com um problema nas minhas URLs amigáveis. Ativei o mod_rewrite no Apache do EasyPHP já, só não consigo fazer pegar.
Coloquei estes arquivos na raíz: index.php, home.php, contato.php, erro.php, htaccess.
No index fica o include que cria os ?p= pra página. A página raíz do include é "home.php" e se não achar as páginas aparece a página "erro.php".
Meu código htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?p=$1 [L]
</IfModule>
Na página index.php tem um pequeno menu que linka para /index.php?p=contato e /contato.
O ?p=contato funciona normalmente, mas o /contato não, ou seja, não identifica o htaccess e dá como se o "DIRETÓRIO" não existisse.
>
Verifique se o mod_rewrite está ativado.
Localize o arquivo httpd.conf do apache e descomente (retire o '#' do início), ou adicione as linhas
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c
Procurei "mod_rewrite" no httpd.conf do Apache do EasyPHP e já tava assim:
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
Arquivo htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.)/?([0-9])/?([0-9]*)/?$ index.php?p=$1
</IfModule>
Retire esse IF aí:
RewriteEngine On
RewriteRule ^([^/]*)/?$ index.php?p=$1
Meu htaccess se chamava "htaccess" quando deveria se chamar ".htaccess". Legal.
Código que usei:
Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^([a-z]+)/?$ ?p=$1
E Henrique, sua dica do IF foi válida! Ajudou tbm! Obrigada!
Resolvido!
Deixa eu adivinhar, você usa Windows... É meio complicadinho criar um arquivo chamado ".htaccess" no Windows mesmo... Ainda bem que você percebeu, pois eu jamais adivinharia que era isso B)
O tópico foi resolvido mas sim, eu uso Windows. E pior que nos tutoriais ele só falam pra criar um arquivo com nome "htaccess" =/
Obrigada
Verifique se o mod_rewrite está ativado.
Localize o arquivo httpd.conf do apache e descomente (retire o '#' do início), ou adicione as linhas
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c