CloudInsidr

Cyber security, infotech

  • Subscribe!
  • Privacy Policy
  • Legal
  • Contact Us

Join us on Twitter: @CloudInsidr

Follow us on Twitter: @cloudinsidr
  • news & alerts
    • events
    • industry analysis
    • industry gossip
    • people
  • cloud, edge & co.
    • AWS
    • administration & orchestration
      • web servers in the cloud
      • mail servers
      • databases
  • cybersec & warfare
    • encryption
  • blockchain
Home Uncategorized RegEx Bliss: Set Up URL Redirects in NGINX Using Regular Expressions without Rewrites
RegEx Bliss: Set Up URL Redirects in NGINX Using Regular Expressions without Rewrites

Anna E Kobylinska 2016-02-04 Leave a Comment

RegEx Bliss: Set Up URL Redirects in NGINX Using Regular Expressions without Rewrites

There are two major no-nos when it comes to writing NGINX redirects:

  • thou shalt not use if statements (that’s a major no-no);
  • thought shalt not use rewrites (they are a waste of resources, as in “slow” and “expensive”).

Instead, use ol’ good location blocks. But what if you have plenty of URIs to redirect? How do you deploy RegEx magic with NGINX? Easy.

For example, in order to eliminate the year, month and day from an URL, use this (updated!) regular expression:

location ~ /magazine/(\d\d\d\d)/((\d\d)\/)+(.*){ 
return 301 http://$server_name/magazine/$4; 
try_files $uri $uri/ /index.php?$args; 
}

The first capture group (\d\d\d\d) represents a four-digit year, the second and third are nested and capture the month and the day (if available), followed by a forward slash and zero or more occurrences of any characters (.*). The return directive will output only the fourth capture group [$4] that is defined as any number of characters other than the line break (.+). The important thing to note is the fact that NGINX does not insist that you mask forward slashes (/) for reasons of simplicity (except when used in a capture group between brackets), yet it still counts capture groups the way you would expect it to.

In case of doubt, you may want to refer to an online regex editor such as regexr.com  or regex101.com. For those who need to refresh their regex memory, here is a nice cheat sheet for regular expressions.

Restart NGINX to apply configuration changes. (So far so good!)

But what do you do to ensure that you haven’t overlooked some God-forsaken URLs that will deliver nasty 404 errors until the cows come home? Easy: check the errors in Google Webmaster Tools (and also, read your email: should you mess up in a major way, that’s where Google will complain, just before penalizing your site). Even if crawling failed only intermittently, it is still advisable to mark Google’s complaints as resolved once they have been resolved, obviously.

Resolving pesky 404 errors in Google Webmaster Tools
Resolving pesky 404 errors in Google Webmaster Tools

To verify if your 301 redirects are working, check out this post: SEO Secrets: How to Verify that Google Respects Your 301 (and 302) Redirects, Ranking-Wise.

Filed Under: Uncategorized, web servers in the cloud Tagged With: NGINX, RegEx, regular expressions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Subscribe

SSL/TLS Certificate Square (250 x 250)

Pearson Education (InformIT)

SSL/TLS Certificate Medium Rectangle (300 x 250)

Recent Posts

  • Upgrading from CentOS 6 to CentOS 7 and Beyond?
  • How To Figure Out Who is Signing In To Dovecot to Send or Retrieve Email
  • OpenSSH 9.9 Introduces Enhanced Quantum-Resistant Algorithms
  • OpenSSL 3.3 Final Release is now live!
  • How to Activate HTTP/2 with TLS 1.3 Encryption in NGINX for Secure Connections without a Performance Penalty
  • Is AWS sucking your budget dry? Strip it down to the nitty-gritty (without breaking stuff)
  • How to attach and mount an NVMe EBS volume on EC2
  • SELinux security contexts: correcting SELinux labels on a file system
  • Intel gobbling up Israeli Tower Semiconductor, Stock Goes Through The Roof
  • NGINX on AWS EC2: setting up a web server from scratch on a domain of your choice
  • Log4j RCE and mitigation techniques
  • Set up logrotate for Postfix

Symantec

Categories

  • administration and orchestration
  • alerts
  • AWS
  • Bitcoin
  • cloud, edge and everything in between
  • cryptocurrencies
  • cybersecurity and cyber warfare
  • databases
  • DNS
  • encryption
  • events
  • FinTech and InsurTech
  • homeland security
  • HTTP Security Headers
  • industries
  • industry analysis
  • industry gossip
  • Java
  • Linux
  • mail servers
  • networking
  • news
  • NGINX
  • people
  • php-fpm
  • reviews
  • SELinux
  • tips and tricks
  • Uncategorized
  • web servers in the cloud

Tags

AMI AWS AWS EBS Azure certificate cipher suites cryptography cyber defense cybersecurity cyber security Diffie-Hellman DNS DNS over HTTPS Dovecot EBS EC2 email encryption Fedora HTTP/2 HTTPS IBM letsencrypt Linux logs MariaDB MFA MySQL NGINX OpenSSL permissions php-fpm PHP 7 postfix RegEx Route 53 RSA SELinux SQL SSH SSL TLS TLS 1.3 TLS vulnerabilities WordPress

Archives

  • January 2025
  • November 2024
  • October 2024
  • May 2024
  • January 2023
  • March 2022
  • February 2022
  • December 2021
  • December 2020
  • November 2020
  • September 2020
  • January 2020
  • November 2019
  • August 2019
  • July 2019
  • April 2019
  • December 2018
  • October 2018
  • September 2018
  • August 2018
  • June 2018
  • May 2018
  • April 2018
  • February 2018
  • December 2017
  • November 2017
  • October 2017
  • August 2017
  • April 2017
  • February 2017
  • January 2017
  • November 2016
  • September 2016
  • August 2016
  • July 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • July 2015
  • February 2015

Recent Comments

    Wicked fast Networking (With a Government Clearance to Boot)

    ©2022 CybrAnalytiqa OÜ

    • Content purchasing and syndication