| tags:[ setup ]
How to migrate static pages to another address
A newer iteration of this post is available.
I knew that in time it would be necessary to move this web to another address. The setup for deployment is its own hassle. The main things I wanted was to be able to come to an old address and get redirected to the correct current address. It would be quite easy with something dynamic, but these pages are static, and so cannot really catch someone attending a random address of the old page.
The structure of the new website should be identical so there is a simple way of doing it.
Generate a single redirect page index.html
for each of the previously active pages.
The code for a moved page was given to me by JJ ↗.
<!DOCTYPE html>
<html>
<head>
<title>Page Moved</title>
<meta http-equiv="refresh" content="0; URL=https://my.new.homepage.com/address" />
</head>
<body>
This page has moved. Click <a href="https://my.new.homepage.com/address">here</a> to go to the new page.
</body>
</html>
For each old page we need to substitute address
with the old address.
#!/usr/bin/env bash
for line in $(cat ./pages.txt); do
par="$(dirname "$line")"
mkdir -p "$par"
echo "$par" "$line"
pp=${par:2:1000}
echo "$pp"'/'
cp orig.html copy.html
sed -i 's|address|'"$pp"'|g' copy.html
cp copy.html "$line"
done
Where the pages.txt
contains list of all pages on your page – one per line.
You may get it e.g. like this:
find . -iname "*.html" >pages.txt
Now the old pages redirect (and contain link) to their new counterpart.