Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve tripulação.
Este é o meu .htaccess:
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([0-9]+)$ capa.php?codigo=$1
RewriteRule ^([0-9]+)/([A-Za-z0-9_]+)$ $2.php?codigo=$1
</IfModule>
Por exemplo, tenho o código 1, queria que independente de eu ter um diretório com o código 1, ele reescreve a url. Por que quando tenho um diretório, ele vai pro diretório, ao invés de reescrever! Apenas removendo o Rewritecond que ignora diretório e arquivos, não resolveu.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Tentei trocar o -d (menos D) por +d (mais D), mas não rolou. Tentei tirar o ! (exclamação), mas também não deu.
Alguém saberia me dizer qual a solução pra isso?
Desde já meu muito obrigado!
Qual o problema em passar 2 vars $ $?
Se tenho "condicao"/"condicao". Cada condição (ER) que eu aplicar terá uma $. O que está errado? Não entendi!
Me parece que isso funciona:
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^([0-9]+)$ capa.php?codigo=$1 RewriteRule ^([0-9]+)/([A-Za-z0-9_]+)$ $2.php?codigo=$1 </IfModule>
Ele só vai reescrever se for diretório ou arquivo. Mas mesmo assim ele está dando problema. Ele não está indo pro capa.php. Está indo pro 404 personalizado.
Uma das soluções seriam retirar os diretórios numéricos para dentro de um outro diretório.
Mas eu gostaria de saber se há alguma forma de "driblar" isso, ou seja, forçar a reescrita independente de existir ou não um diretório com o mesmo nome passado na url (código).
Aguardo feedback e desde já obrigado!
Eu acho que o problema está em vc está passando dois $ $
RewriteRule ^([0-9]+)/([A-Za-z0-9_]+)$ $2.php?codigo=$