Eu preciso que a pasta /admin seja acessada normalmente sem as instruções do .htaccess, preciso que a instruções sejam aplicadas somente no arquivo produtos.php, mas está redirecionando o endereço sempre para produtos.php, não importa a url. Como eu uso o separador barra ( / ), está dificultando algumas coisas. O arquivo .htaccess está da seguinte forma:
RewriteEngine On
RewriteBase /
Options FollowSymLinks
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([A-Za-z0-9_áàâãéèêíìîóòôõúùûç()]+)\.php$ produtos.php?m=$1&pag=$2&prod=$3&id=$4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.php$ produtos.php?m=$1&prod=$2&pag=$3 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.php$ produtos.php?m=$1&prod=$2&id=$3&pag=$4 [L]
RewriteRule ^([^/]*)/([^/]*)\.php$ produtos.php?m=$1&prod=$2 [L]
Em php $_SERVER['SCRIPT_FILENAME'] mostra o endereço completo e o nome do arquivo que está sendo executado, não sei se em mod_rewrite é a mesma coisa, mas o Isapi está executando as instruções mesmo quando mudo de diretório que seria o /admin.
Então fiz um teste, primeiramente retirei o .htaccess para ver o que poderia ser feito. O diretório /admin claramente voltou a funcionar. Então acrescentei essas tres instruções:
RewriteRule ^admin/$ admin/index.html [L]
RewriteRule ^admin/([^/]*)/([^/]*)/$ admin/$1.php?m=$2 [L]
RewriteRule ^admin/login/$ admin/login.php [L]
Consegui fazer funcionar o login e o acesso ao painel. Mas não é isso que eu quero que seja feito. O Painel é complicado, tem várias urls (com o id= por exemplo) dinâmicas, e tudo que eu preciso é que as regras não se apliquem na pasta /admin. Somente isso. E estou desde ontem a resolver. Se eu mudar também o /admin para urls amigáveis que não é necessário, vou ter um trabalho enorme de mudar tudo.
Alguém pode me ajudar ?
Abraços Walker