Hello,
I have the following scenario:
- Client: AngularJS-based SPA running on www.example.com
- Backend: API running on api.example.com
Both live in one nginx instance in two separate "server" environments.
- Browsing to www.example.com/items/1 launches the Angular app
- App sends request to api.example.com/items/1
- If item 1 does not exist, API returns 404 status code
- Client app can now show soft 404 error page, all fine
- But for crawlers/search engines, I want to return a proper HTTP status code. Same goes for redirect to item’s canonical URL if that is necessary.
So my idea was to do sth like this:
- If request URL matches www.example.com/items/<id>, check existence of item by sending a HEAD request to api.example.com/items/<id>
- If request returns 404, return proper status code and error page
- If request returns 200, do nothing and just serve the Angular app
Is there any way to do this with (plain) nginx and if so–how could it be done specifically?
Thanks for any hints :)