Uma hipótese ...
RewriteRule .* index.php?request=$1 [L,QSA]
Esta linha parece como um erro, uma vez que a referência de% $1 estará sempre vazia, pois não há grupo capturado no padrão RewriteRule .
O "framework" ainda pode funcionar (para o alfabeto latino) porque pode estar analisando o superglobal $_SERVER['REQUEST_URI'] PHP (como um fallback talvez) - o que muitos frameworks fazem. No entanto, $_SERVER['REQUEST_URI'] permanecerá codificado em URL (por exemplo, /actor/%C3%85ker ) - então, provavelmente, ele precisa ser decodificado por URL (por exemplo, /actor/Åker ) antes de poder ser roteado por meio de sua estrutura. Isso pode ser onde está o problema. Uma solicitação como /actor/Aker , por outro lado, é a mesma, seja ela codificada ou não, portanto, isso não afetaria URLs como esse.
No entanto, se sua estrutura permitir que a URL solicitada seja substituída pelo parâmetro request URL, considere alterar a diretiva acima para:
RewriteRule (.*) index.php?request=$1 [L,QSA]
ie. coloque o padrão RewriteRule entre parênteses.
Isso fará com que o caminho da URL capturado seja passado no parâmetro request URL. Agora, a diferença importante com isso é que o caminho de URL com o qual a diretiva RewriteRule corresponde já está decodificado por URL. Portanto, o parâmetro request URL já contém a solicitação decodificada por URL (embora menos o prefixo de barra), por exemplo. actor/Åker .
UPDATE: Tente alterar o padrão RewriteRule de .* para [\s\S]* . Por exemplo:
RewriteRule ([\s\S]*) index.php?request=$1 [QSA,L]
Este é apenas um padrão ligeiramente mais abrangente. Embora . (ponto) corresponda a qualquer caractere (excluindo novas linhas), [\s\S] corresponde a qualquer espaço em branco e a quaisquer caracteres que não sejam espaços em branco (ou seja, tudo ).