Codigo Logo

Nginx Angular JS SEO with hashbang

We used Prerender.io for performance SEO in Angular JS. But we had a problem with Facebook because they save url link with escaped_fragment so when you navigate with a browser some "Angular things" don't work.

The solution: we only need to do two conditions:

IF url has include escaped_fragment

AND

you are in a browse

THEN

redirect to hashbang.

This is the code:

set $redirect "";

if ($http_user_agent ~* '(Mozilla)') {

  set $redirect  G;

}

if ($arg__escaped_fragment_) {

  set $redirect  "${redirect}O";

}

if ($redirect = GO) {

  rewrite ^ $scheme://$host/#!$arg__escaped_fragment_? break;

}

It's very funny how you have to do an AND condition in Nginx :-)

Nginx Angular JS SEO with hashbang