diff options
Diffstat (limited to 'content/blog/2022-12-07-nginx-wildcard-redirect.md')
-rw-r--r-- | content/blog/2022-12-07-nginx-wildcard-redirect.md | 62 |
1 files changed, 29 insertions, 33 deletions
diff --git a/content/blog/2022-12-07-nginx-wildcard-redirect.md b/content/blog/2022-12-07-nginx-wildcard-redirect.md index c2ef747..e8339b9 100644 --- a/content/blog/2022-12-07-nginx-wildcard-redirect.md +++ b/content/blog/2022-12-07-nginx-wildcard-redirect.md @@ -7,18 +7,18 @@ draft = false # Problem -I recently migrated domains and replaced the old webpage with a simple -info page with instructions to users on how to edit their bookmarks and -URLs to get to the page they were seeking. +I recently migrated domains and replaced the old webpage with a simple info page +with instructions to users on how to edit their bookmarks and URLs to get to the +page they were seeking. -This was not ideal as it left the work up to the user and may have -caused friction for users who accessed my RSS feed. +This was not ideal as it left the work up to the user and may have caused +friction for users who accessed my RSS feed. # Solution -Instead, I finally found a solution that allows me to redirect both -subdomains AND trailing content. For example, both of these URLs now -redirect properly using the logic I\'ll explain below: +Instead, I finally found a solution that allows me to redirect both subdomains +AND trailing content. For example, both of these URLs now redirect properly +using the logic I'll explain below: ``` txt # Example 1 - Simple base domain redirect with trailing content @@ -34,15 +34,15 @@ Go ahead, try the URLs if you want to test them. ## Nginx Config -To make this possible. I needed to configure a proper redirect scheme in -my Nginx configuration. +To make this possible. I needed to configure a proper redirect scheme in my +Nginx configuration. ```sh doas nano /etc/nginx/http.d/domain1.conf ``` -Within this file, I had one block configured to redirect HTTP requests -to HTTPS for the base domain and all subdomains. +Within this file, I had one block configured to redirect HTTP requests to HTTPS +for the base domain and all subdomains. ``` conf server { @@ -62,10 +62,9 @@ server { } ``` -For the base domain, I have another `server` block dedicated -to redirecting all base domain requests. You can see that the -`rewrite` line is instructing Nginx to gather all trailing -content and append it to the new `domain2.com` URL. +For the base domain, I have another `server` block dedicated to redirecting all +base domain requests. You can see that the `rewrite` line is instructing Nginx +to gather all trailing content and append it to the new `domain2.com` URL. ``` conf server { @@ -81,19 +80,16 @@ server { } ``` -Finally, the tricky part is figuring out how to tell Nginx to redirect -while keeping both a subdomain and trailing content intact. I found that -the easiest way to do this is to give it a `server` block of -its own. +Finally, the tricky part is figuring out how to tell Nginx to redirect while +keeping both a subdomain and trailing content intact. I found that the easiest +way to do this is to give it a `server` block of its own. -Within this block, we need to do some regex on the -`server_name` line before we can rewrite anything. This -creates a variable called `subdomain`. +Within this block, we need to do some regex on the `server_name` line before we +can rewrite anything. This creates a variable called `subdomain`. -Once the server gets to the `rewrite` line, it pulls the -`subdomain` variable from above and uses it on the new -`domain2.com` domain before appending the trailing content -(`$request_uri`). +Once the server gets to the `rewrite` line, it pulls the `subdomain` variable +from above and uses it on the new `domain2.com` domain before appending the +trailing content (`$request_uri`). ``` conf server { @@ -109,15 +105,15 @@ server { } ``` -That\'s all there is to it. With this, I simply restarted Nginx and -watched the redirections work in-action. +That's all there is to it. With this, I simply restarted Nginx and watched the +redirections work in-action. ```sh doas rc-service nginx restart ``` -Looking back on it, I wish I had done this sooner. Who knows how many -people went looking for my sites or bookmarks and gave up when they saw -the redirect instructions page. +Looking back on it, I wish I had done this sooner. Who knows how many people +went looking for my sites or bookmarks and gave up when they saw the redirect +instructions page. -Oh well, it\'s done now. Live and learn. +Oh well, it's done now. Live and learn. |