Rewrite но не обычный?
попробуйте так:

server {
 server_name ~^(www\.)?(?<PARTNER>.+)\.site\.com$;
 rewrite ^/(.*)$ http\://site\.com/partner/page/$PARTNER/$1 last;
 return 403;
}
А не проще определить это в application/config/routes.php?