Você sempre pode usar mod_rewrite para acrescentar uma barra à direita
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
Adicione acima da sua primeira regra
Eu reescrevi a regra que funciona bem, mas acaba alterando a URL visível se uma barra for omitida ao ir para um index.php
:
RewriteEngine on
RewriteCond %{REQUEST_URI} !main
RewriteRule /.* /~user/main$0
Quando alguém visita
http://user.dev.example.com/utilities/pib/
A página funciona bem. No entanto, se eles visitarem
http://user.dev.example.com/utilities/pib
Eles são redirecionados para
http://user.dev.example.com/~user/main/utilities/pib/
Isso ainda funciona bem, mas prefiro que o URL não seja alterado. O servidor tem outra configuração que permite que ~user
na URL leve você para public_html
no disco (onde esses arquivos estão localizados). Então, o URL real deve ser:
http://dev.example.com/~user/main/utilities/pib/
Mas ainda deixa meu nome no domínio. Não tenho certeza se sou capaz de resolver esse problema, mas também não sei o que outra configuração poderia causar.
Você sempre pode usar mod_rewrite para acrescentar uma barra à direita
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
Adicione acima da sua primeira regra
As regras acima não são a causa disso. Verifique todos os arquivos de configuração incluídos em conf.d
(ou similar). Se você definir AllowOverride All
, encontre todos os arquivos .htaccess
com:
find /path/to/document/root -name .htaccess
e dê uma olhada nisso.
Também sugiro que você ative o mod_rewrite
log:
RewriteLog /tmp/rewrite.log
RewriteLogLevel 9
para ver como o URI é analisado.
Tags mod-rewrite apache-2.2 rewrite