NGINX – Send request to backend if the request is coming from a crawler/bot

I have a Single Page Application without server-side rendering. So whenever someone shares a URL from the site on Facebook or Twitter it does not show the dynamic title of the page.

I would like to send crawler/bot requests to a special backend that serves a page with OpenGraph meta tags.

Front-end is hosted on NGINX and I have this configuration so far:

server {
    listen       80;
    listen  (::):80;

    location / {
        if ($http_user_agent ~* "linkedinbot|googlebot|yahoo|bingbot|baiduspider|yandex|yeti|yodaobot|gigabot|ia_archiver|facebookexternalhit|twitterbot|") {
            return 307 https://renderer_service_domain$request_uri;

    root   /usr/share/nginx/html;
    index  index.html;

This works, but Angular’s URL has the # before the route url, I need to remove it before sending the request to the special backend.

So, how can I remove the hash from the $request_uri ?

I tried couple rewrite examples, but it sends the request to the same domain, I need to send the request to another server/domain name.