Это может быть связано с тем, что mod_dir обрабатывает запрос внутренне. При доступе к http://m.domain.com/shop-name, а затем он переписывается на http://domain.com/ipad/shop-name, mod_dir 302 перенаправляет браузер на http://domain.com/ipad/shop-name/.
Вы можете попробовать обработать косую черту в вашем RewriteRule. Вероятно, более чистый способ сделать это, но что-то вроде:
RewriteCond %{HTTP_HOST} ^m\.domain\.com?$
# Has trailing slash in request, don't need to append one in the RewriteRule
RewriteCond %{THE_REQUEST} ./\ HTTP/1\.[01]$
RewriteRule ^ http://domain.com/ipad%{REQUEST_URI} [L,P]
RewriteCond %{HTTP_HOST} ^m\.domain\.com?$
# Missing trailing slash in request
RewriteCond %{THE_REQUEST} [^/]\ HTTP/1\.[01]$
# Request doesn't end with one of these extensions, 301 redirect to include trailing slash
RewriteCond %{REQUEST_FILENAME} !\.(php|html?|jpg|gif)$
RewriteRule . http://m.domain.com%{REQUEST_URI}/ [R=301]
РЕДАКТИРОВАТЬ: отредактировано для адреса перенаправления 301 пропущенного завершающего слеша