Por que isso funciona:
RewriteRule (.+)/$ $1
e este trabalho:
RewriteRule (.+)/$ $1 [L] #bla bla bla
mas isso não funciona:
RewriteRule (.+)/$ $1 #bla bla bla
Por que isso funciona:
RewriteRule (.+)/$ $1
e este trabalho:
RewriteRule (.+)/$ $1 [L] #bla bla bla
mas isso não funciona:
RewriteRule (.+)/$ $1 #bla bla bla
Respostas:
A última regra não funciona porque os comentários não são realmente comentários. Os comentários em htaccess devem começar com um #
(deve estar no início de uma linha), e não arbitrariamente em qualquer lugar.
No segundo caso, o #bla bla bla
é interpretado como um 4º parâmetro da RewriteRule
diretiva, que é simplesmente ignorado.
No último caso, o #bla bla bla
é interpretado como um terceiro parâmetro, que no RewriteRule
caso de é para onde vão os sinalizadores, e #bla bla bla
não é nenhum sinalizador que o mod_rewrite entende, então você obtém um erro.
#
deva estar no "início" da linha, pode ser precedido por qualquer quantidade de espaço em branco. (Excesso) Espaços em branco em .htaccess são ignorados e podem ser "borrifados" em qualquer lugar, inclusive no início das linhas. Em outras palavras, #
deve ser o primeiro caractere sem espaço em branco em uma linha. Eu costumava erroneamente pensar que #
devia ser o personagem 1, na coluna da extrema esquerda!
O formato de arquivo de configuração do Apache (dos quais .htaccess
arquivos são um exemplo) não suporta tecnicamente comentários embutidos, apenas comentários de linha completa (ou seja, uma linha começando com a #
).
As linhas que começam com o caractere hash "#" são consideradas comentários e são ignoradas. Os comentários não podem ser incluídos em uma linha após uma diretiva de configuração. - Manual oficial do Apache 2.4
No entanto, é confuso que cada módulo analise a entrada de suas diretivas da maneira que quiser - então mod_rewrite
decide o que fazer com qualquer linha que comece comRewriteRule
Não sei ao certo, mas meu palpite é que isso mod_rewrite
é ignorar tudo após o [flags]
, e o #
não é realmente necessário.
A melhor aposta, porém, é sempre manter os comentários em suas próprias linhas, já que isso funcionará independentemente da diretriz que você está comentando.