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?

Foi útil?

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]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top