В документации apache (
http://httpd.apache.org/docs/2.2/mod/mod_alias.html#Redirect) расписан подробно как раз данный случай:
Then any request beginning with URL-path will return a redirect request to the client at the location of the target URL. Additional path information beyond the matched URL-path will be appended to the target URL.
Example:
Redirect /service http://foo2.example.com/service
If the client requests http://example.com/service/foo.txt, it will be told to access http://foo2.example.com/service/foo.txt instead. Only complete path segments are matched, so the above example would not match a request for http://example.com/servicefoo.txt. For more complex matching using regular expressions, see the RedirectMatch directive.
Если запрашивается карточка неизвестного товара (example.com/catalog/1234/9999), то apache берет подходящее совпадение левой части URL-path (/catalog/1234/) и перенаправляет его на example.com/section/subsection/subsection_double_name/, при этом приписывая в конце оставшуюся часть начального URL (9999).
Чтобы избежать подобное поведение, нужно использовать RedirectMatch или RewriteRule вместо Redirect. Попробуйте так:
RedirectMatch ^/catalog/1234/9876/?$
http://example.com/section/subsection/item_name
RedirectMatch ^/catalog/1234/?$
http://example.com/section/subsection/subsection_double_name
Да и проставляйте код 301 (напр., "RedirectMatch 301 ^/catalog/...") для перманентного редиректа, чтобы поисковики знали что запрашиваемая страница навсегда переехала в другое место.
Ну и в конце добавьте
RewriteEngine On
RewriteRule ^catalog/([0-9]{4})/[0-9]{4}/?$ /catalog/$1 [L]