Добавьте %
к классу символов в вашем выражении:
RewriteRule ^dictionary/([\w+%]{2,50})$ /words.php?q=$1 [QSA,L]
Или вы можете даже использовать [^/]{2,50}
.
Специальные (что-то вроде [^A-Za-z0-9_]
) символыкодируется клиентом по запросу.Обратите внимание, что åäö
станет 9 символами, и даже один å
пройдет через это выражение.Если вы хотите разрешить 50 специальных символов, используйте {2,150}
и проверяйте обе стороны диапазона в вашем PHP-коде после декодирования строки (что, я думаю, делается для вас автоматически).