Директива RewriteRule происходит от mod_rewrite , тогда как директива RedirectPermanent происходит от mod_alias .
В этом сценарии они плохо играют вместе. RedirectPermanent использует исходный URL / coaching / Run to live , но видит измененную строку запроса ? CategoryName = Run% 20to% 20live , созданную вашим RewriteRule. Несмотря на то, что это довольно неожиданно, необходимо использовать вместе mod_rewrite и mod_alias в контексте для каждого каталога (.htaccess).
Так как вам все равно нужен mod_rewrite для вашего исходного RewriteRule, лучшим вариантом будет также использовать RewriteRule вместо RedirectPermanent для второй операции. Это будет выглядеть примерно так:
# Perform this redirect first
RewriteRule "^coaching/Run to live$" http://www.example.com/coaching [R=301,L]
RewriteRule ^coaching/([^/]+)/?$ search_result.php?categoryName=$1 [NC,L]