Desative MutliViews na parte superior do seu arquivo .htaccess
:
Options -MultiViews
Os MultiViews (parte do mod_negotiation) normalmente pesquisam os arquivos físicos que correspondem a main
(neste caso) como um nome de base (e responderiam com um tipo mime apropriado). Isso acontece antes mod_rewrite. Portanto, se você tiver um arquivo chamado main.de.html
, ele será exibido como uma subrequência interna (sem redirecionamento) antes que o mod_rewrite tenha sido processado.
(but only after an apache restart).
Isso não é algo que normalmente exigiria uma reinicialização do Apache. Embora seja possível que haja algum armazenamento em cache acontecendo. (?)
RewriteRule ^main$ main.html [L,R=301]
Além disso: é improvável que seja válido como um redirecionamento externo, a menos que você tenha uma diretiva RewriteBase
existente (suponho que você deva ter) Caso contrário, você deve prefixar a substituição com uma barra. ie. /main.html
(se o arquivo estiver na raiz do documento).
www.example.com/main URL appears unaltered in the browser
Se o MulitViews não for o problema, pode ser que a diretiva esteja no lugar errado no arquivo de configuração e outras diretivas talvez estejam em conflito. Precisamos ver seu arquivo .htaccess
.