diff --git a/book.toml b/book.toml
index 8e85b4a78..bf2913d0d 100644
--- a/book.toml
+++ b/book.toml
@@ -22,6 +22,23 @@ use-boolean-and = true
"grammar.md" = { enable = false }
[output.html.redirect]
+"/attributes.html#cold-attribute" = "attributes/codegen.html#the-cold-attribute"
+"/attributes.html#conditional-compilation" = "conditional-compilation.html"
+"/attributes.html#crate-only-attributes" = "attributes.html#built-in-attributes-index"
+"/attributes.html#deprecation" = "attributes/diagnostics.html#the-deprecated-attribute"
+"/attributes.html#derive" = "attributes/derive.html"
+"/attributes.html#documentation" = "../rustdoc/the-doc-attribute.html"
+"/attributes.html#ffi-attributes" = "attributes.html#built-in-attributes-index"
+"/attributes.html#inline-attribute" = "attributes/codegen.html#the-inline-attribute"
+"/attributes.html#lint-check-attributes" = "attributes/diagnostics.html#lint-check-attributes"
+"/attributes.html#macro-related-attributes" = "attributes.html#built-in-attributes-index"
+"/attributes.html#miscellaneous-attributes" = "attributes.html#built-in-attributes-index"
+"/attributes.html#must_use" = "attributes/diagnostics.html#the-must_use-attribute"
+"/attributes.html#optimization-hints" = "attributes/codegen.html#optimization-hints"
+"/attributes.html#path" = "items/modules.html#the-path-attribute"
+"/attributes.html#preludes" = "crates-and-source-files.html#preludes-and-no_std"
+"/attributes.html#testing" = "attributes/testing.html"
+"/attributes.html#tool-lint-attributes" = "attributes/diagnostics.html#tool-lint-attributes"
"/crates-and-source-files.html#preludes-and-no_std" = "names/preludes.html"
"/expressions/enum-variant-expr.html" = "struct-expr.html"
"/expressions/if-expr.html#if-let-expressions" = "if-expr.html#if-let-patterns"
@@ -38,6 +55,37 @@ use-boolean-and = true
"/procedural-macros.html#derive-macros" = "procedural-macros.html#the-proc_macro_derive-attribute"
"/procedural-macros.html#function-like-procedural-macros" = "procedural-macros.html#the-proc_macro-attribute"
"/runtime.html#the-panic_handler-attribute" = "panic.html#the-panic_handler-attribute"
+"/types.html#abstract-return-types" = "types/impl-trait.html#abstract-return-types"
+"/types.html#anonymous-type-parameters" = "types/impl-trait.html#anonymous-type-parameters"
+"/types.html#array-and-slice-types" = "types/array.html"
+"/types.html#boolean-type" = "types/boolean.html"
+"/types.html#call-traits-and-coercions" = "types/closure.html#call-traits-and-coercions"
+"/types.html#capture-modes" = "types/closure.html#capture-modes"
+"/types.html#closure-types" = "types/closure.html"
+"/types.html#enumerated-types" = "types/enum.html"
+"/types.html#function-item-types" = "types/function-item.html"
+"/types.html#function-pointer-types" = "types/function-pointer.html"
+"/types.html#impl-trait" = "types/impl-trait.html"
+"/types.html#inferred-type" = "types/inferred.html"
+"/types.html#machine-dependent-integer-types" = "types/numeric.html#machine-dependent-integer-types"
+"/types.html#machine-types" = "types/numeric.html"
+"/types.html#mutable-references-" = "types/pointer.html#mutable-references-mut"
+"/types.html#never-type" = "types/never.html"
+"/types.html#numeric-types" = "types/numeric.html"
+"/types.html#other-traits" = "types/closure.html#other-traits"
+"/types.html#pointer-types" = "types/pointer.html"
+"/types.html#raw-pointers-const-and-mut" = "types/pointer.html#raw-pointers-const-and-mut"
+"/types.html#self-types" = "paths.html#self-1"
+"/types.html#shared-references-" = "types/pointer.html#shared-references-"
+"/types.html#smart-pointers" = "types/pointer.html#smart-pointers"
+"/types.html#struct-types" = "types/struct.html"
+"/types.html#textual-types" = "types/textual.html"
+"/types.html#trait-object-lifetime-bounds" = "types/trait-object.html#trait-object-lifetime-bounds"
+"/types.html#trait-objects" = "types/trait-object.html"
+"/types.html#tuple-types" = "types/tuple.html"
+"/types.html#type-parameters" = "types/parameters.html"
+"/types.html#union-types" = "types/union.html"
+"/types.html#unique-immutable-borrows-in-captures" = "types/closure.html#unique-immutable-borrows-in-captures"
"/unsafe-blocks.html" = "unsafe-keyword.html"
"/unsafe-functions.html" = "unsafe-keyword.html"
diff --git a/src/attributes-redirect.html b/src/attributes-redirect.html
deleted file mode 100644
index a0548cc49..000000000
--- a/src/attributes-redirect.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
diff --git a/src/attributes.md b/src/attributes.md
index 9fd9c3ec8..79b98988a 100644
--- a/src/attributes.md
+++ b/src/attributes.md
@@ -1,4 +1,3 @@
-{{#include attributes-redirect.html}}
r[attributes]
# Attributes
diff --git a/src/types-redirect.html b/src/types-redirect.html
deleted file mode 100644
index 26d5410a7..000000000
--- a/src/types-redirect.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
diff --git a/src/types.md b/src/types.md
index 9c93f7996..de67050ad 100644
--- a/src/types.md
+++ b/src/types.md
@@ -1,4 +1,3 @@
-{{#include types-redirect.html}}
r[type]
# Types