· Abderrahmane Smimite · tutorials  · 2 min read

Nginx rewrite rules - the easy way

Unlike other posts or articles that I’m used to sharing, this is not about Cyber Security, Product Management, Agile practices, or data. It’s just something that I’ve spent some time on recently, and I thought it could save someone some valuable time.

Nginx (or Apache) has powerful URL rewrite capabilities that can simplify your migrations. You might want to take a look at it as it could ease it up.

As part of website/web app migration, we often have to handle two main challenges:

  • Updating the main website URL, which primarily consists of DNS changes. As long as you’re not dealing with CNAME entries on the APEX domain using a provider that doesn’t support DNS flattening, you should be fine.
  • switching URL schemes to adapt to a new format, for instance, redirecting /posts?id=123 to /articles/123

A well-established web server can handle the second aspect. But before diving in, you should consider the effort versus the impact and if it is worth it for your case. Basically, it’s about:

  • Search engine bots previously indexed paged, sending potential 404 errors and degrading your SEO effort.
  • Users that are used to specific patterns or bookmarks could get confused or lost with this change.

If these concerns apply to your case, having Nginx as a proxy can be very handy. The official documentation available here is a good start. If you’re in a hurry, here are the five main things to consider:

  • There are multiple directives; rewrite is the most flexible and comprehensive one.
  • Rules are scoped to a specific location within a specific server. You could have everything at /, but splitting can be pretty convenient.
  • Rewrite supports regex in its basic flavor. I usually experiment with Python or regex101 before applying anything.
  • Nginx processes the rules sequentially, so the order is essential. Be cautious but also use it wisely to simplify complex cases (e.g., having garbage-collector rules after specific ones)

The most common patterns are:

  •  /section/(.*)/product_(.*) /new/catalog/$2 ; if the key is part of the URL and you want to redirect /section/health/product_123 to /new/catalog/123
  •  /section/directory(.*) /section/directory/$arg_user? ; if the key is an argument and you want to redirect /section/directory?user=albert to /section/directory/albert/ ; nginx has built-in $arg_<your_param> variables.

And that’s it! Fly now and rewrite the world!

Back to Blog

Related Posts

View All Posts »
What's New in CISO Assistant — Week 42, 2026 (v4.1.0)

What's New in CISO Assistant — Week 42, 2026 (v4.1.0)

v4.1.0 brings a large rework of the EBIOS RM module (study framing, RO/TO radar, standard and advanced likelihood methods on kill-chain steps), arithmetic in workflows with a CEL compute action, MCP write tools for a full risk review, a delegated user-creator role, entity-assessment exports, the BSI C5:2026 framework, German email templates, and a breaking change to the current-user API.

What's New in CISO Assistant — Week 41, 2026 (v4.0.8 – v4.0.9)

What's New in CISO Assistant — Week 41, 2026 (v4.0.8 – v4.0.9)

v4.0.8 and v4.0.9 let you set a custom score scale on an audit without cloning its framework, bring the SCF 2026.3 framework and a proper ASD Essential Eight (November 2023) model, make every linked-object tab on applied controls able to link existing objects, load long autocomplete lists in batches, and fix a seat-count regression that made readers count as editors.

What's New in CISO Assistant — Week 40, 2026 (v4.0.7)

What's New in CISO Assistant — Week 40, 2026 (v4.0.7)

v4.0.7 brings an in-app notification centre, a risk trajectory view that plays a risk assessment forward in time, X-rays that cover governance and operations and point at active controls with no evidence behind them, per-user module visibility, Mermaid diagrams in documents and PDFs, and workflows that can draft and review documents.