diff options
| author | Christian Cleberg <[email protected]> | 2024-04-27 17:01:13 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2024-04-27 17:01:13 -0500 |
| commit | 63a5afda03daefb45e061a055685335207f21b60 (patch) | |
| tree | d5193997d72a52f7a6d6338ea5da8a6c80b4eddc /content/blog/2021-10-09-apache-redirect.md | |
| parent | eac7b5d0841f62d4cf1dc81f0fed3f207316bca0 (diff) | |
| download | cleberg.net-63a5afda03daefb45e061a055685335207f21b60.tar.gz cleberg.net-63a5afda03daefb45e061a055685335207f21b60.tar.bz2 cleberg.net-63a5afda03daefb45e061a055685335207f21b60.zip | |
test conversion back to markdown
Diffstat (limited to 'content/blog/2021-10-09-apache-redirect.md')
| -rw-r--r-- | content/blog/2021-10-09-apache-redirect.md | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/content/blog/2021-10-09-apache-redirect.md b/content/blog/2021-10-09-apache-redirect.md new file mode 100644 index 0000000..13794f0 --- /dev/null +++ b/content/blog/2021-10-09-apache-redirect.md @@ -0,0 +1,47 @@ ++++ +date = 2021-10-09 +title = "Apache Redirect HTML Files to a Directory" +description = "" +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. + +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`. + +After *a lot* of tweaking and testing, I believe I have finally found +the solution. The solution is shown below. + +``` conf +RewriteEngine On +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. |
