diff --git a/i2p2www/views.py b/i2p2www/views.py
index 2efecd78475254cdb5dff0d92aa811e20534e2b9..53335dc8f96fda7b7a5d925ab2e3aa7c2a3bcf9d 100644
--- a/i2p2www/views.py
+++ b/i2p2www/views.py
@@ -12,11 +12,22 @@ from i2p2www.blog.helpers import get_blog_posts
 def main_index():
     return redirect(url_for('site_show', lang='en'))
 
+SPEC_REDIRECTS = {
+    'docs/how/cryptography': 'cryptography',
+}
+
 # Site pages
 @cache.cached()
 def site_show(page):
     if page.endswith('.html'):
         return redirect(url_for('site_show', page=page[:-5]))
+
+    # Redirect for old spec pages
+    if page.startswith('docs/spec/'):
+        return redirect(url_for('spec_show', name=page[10:]))
+    if page in SPEC_REDIRECTS:
+        return redirect(url_for('spec_show', name=SPEC_REDIRECTS[page]))
+
     name = 'site/%s.html' % page
     page_file = safe_join(TEMPLATE_DIR, name)