RewriteBase /new/ : RewriteRule ^هاستینگ/هاست-لینوکس-عادی/$ /linux-regular.php [L]
O fato de você ter definido um valor específico para o RewriteBase , ainda que tenha especificado um caminho de URL relativo à raiz na RewriteRule substituição , aumenta os alarmes. A diretiva RewriteBase apenas efetua relativa (não inicia com uma barra ou esquema) caminho substituições , portanto, neste caso, ela simplesmente será ignorada - o que eu tenho certeza não é a intenção - caso contrário, não haveria necessidade de defini-lo em primeiro lugar.
Ao remover o prefixo barra na RewriteRule substituição , ele levará em conta o RewriteBase e será reescrito para /new/linux-regular.php . Por exemplo:
RewriteRule ^هاستینگ/هاست-لینوکس-عادی/$ linux-regular.php [L]
O que é consistente com o seu comentário mais recente: "... e removido / do início do linux-regular.php e funcionou."
...the special characters will be encoded in %xx hex form
Como: Embora a solicitação deva ser codificada em% (URL codificado), o caminho da URL com o qual o padrão RewriteRule é correspondido é% -decoded (URL decodificado) pelo mecanismo de reescrita. Portanto, usar os caracteres reais (UTF-8) no padrão RewriteRule está correto aqui (ao contrário da outra resposta).
Se você precisava corresponder especificamente ao caminho de URL codificado em%, seria necessário usar uma diretiva RewriteCond e verificar a variável de servidor THE_REQUEST .