Ajuda de reescrita de URL de htaccess
Pergunta
Eu tenho o seguinte URL de reescrita:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]
Agora, quero adicionar uma exceção, que se o URL é algo como mysite.com/abc, ele deve ignorá -lo e todas as coisas dentro dele também. mysite.com/abc/dfgs também deve ser excluído desta reescrita.
Como posso fazer isso?
Solução
Se /ABC é um diretório existente, você pode colocar outro arquivo .htaccess lá com
RewriteEngine Off
Se é realmente apenas uma string que você deseja não reescrever (se existe ou não)
RewriteCond %{REQUEST_URI} !^/abc
não reescreverá se o caminho solicitado começar com "/abc"
Para testar as regras de reescrita sem atrapalhar o site para navegadores regulares (não que você deva editar em um ambiente ao vivo, é claro, isso é puramente hipotético :-)), achei o seguinte muito útil:
RewriteCond %{REMOTE_ADDR} 12.34.56.78 # <-- where that's your IP address
Outras dicas
Isso deve evitar a reescrita se o URI contiver ABC. Isso pode ou não ser exatamente o que você deseja. Se não for editar sua pergunta.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Rewrite ONLY if the REQUEST does NOT contain abc
RewriteCond %{REQUEST_URI} !abc
# Rewrite all other URLs
RewriteRule ^(.*)$ index.php?page=$1 [PT,L]