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
.