aboutsummaryrefslogtreecommitdiff
path: root/content/blog/2021-10-09-apache-redirect.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/blog/2021-10-09-apache-redirect.md')
-rw-r--r--content/blog/2021-10-09-apache-redirect.md46
1 files changed, 22 insertions, 24 deletions
diff --git a/content/blog/2021-10-09-apache-redirect.md b/content/blog/2021-10-09-apache-redirect.md
index 13794f0..87ea38e 100644
--- a/content/blog/2021-10-09-apache-redirect.md
+++ b/content/blog/2021-10-09-apache-redirect.md
@@ -7,26 +7,25 @@ draft = false
# The Problem
-After recently switching static site generators (SSG), my blog URLs
-changed with no option to preserve the classic `.html`
-extension at the end of my blog post URLs.
+After recently switching static site generators (SSG), my blog URLs changed with
+no option to preserve the classic `.html` extension at the end of my blog post
+URLs.
-I really disliked using my old SSG ([Jekyll](https://jekyllrb.com)) and
-prefer my new tool ([Zola](https://www.getzola.org)) much more, so I was
-determined to figure out a way to get the proper redirect set up so that
-people who find my posts online aren\'t constantly met by 404 errors.
+I really disliked using my old SSG ([Jekyll](https://jekyllrb.com)) and prefer
+my new tool ([Zola](https://www.getzola.org)) much more, so I was determined to
+figure out a way to get the proper redirect set up so that people who find my
+posts online aren't constantly met by 404 errors.
# The Solution
To solve this problem, I really needed to solve two pieces:
-1. Redirect all blog post URL requests from
- `/blog/some-post.html` to `/blog/some-post/`.
-2. Ensure that no other `.html` files are redirected, such
- as `index.html`.
+1. Redirect all blog post URL requests from `/blog/some-post.html` to
+ `/blog/some-post/`.
+2. Ensure that no other `.html` files are redirected, such as `index.html`.
-After *a lot* of tweaking and testing, I believe I have finally found
-the solution. The solution is shown below.
+After *a lot* of tweaking and testing, I believe I have finally found the
+solution. The solution is shown below.
``` conf
RewriteEngine On
@@ -34,14 +33,13 @@ RewriteCond %{REQUEST_URI} !\index.html$ [NC]
RewriteRule ^(.*).html$ https://example.com/$1 [R=301,L]
```
-This piece of code in the Apache `.conf` or
-`.htaccess` file will do the following:
-
-1. Turn on the RewriteEngine so that we can modify URLs.
-2. Ignore any `index.html` files from the rule we are about
- to specify.
-3. Find any `.html` files within the website directory and
- redirect it to exclude the file extension.
-4. The final piece is adding the trailing slash (`/`) at the
- end of the URL - you\'ll notice that I don\'t have an Apache rule
- for that since Apache handles that automatically.
+This piece of code in the Apache `.conf` or `.htaccess` file will do the
+following:
+
+1. Turn on the RewriteEngine so that we can modify URLs.
+2. Ignore any `index.html` files from the rule we are about to specify.
+3. Find any `.html` files within the website directory and redirect it to
+ exclude the file extension.
+4. The final piece is adding the trailing slash (`/`) at the end of the URL -
+ you'll notice that I don't have an Apache rule for that since Apache
+ handles that automatically.