diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 87abd32..12905b1 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -1,9 +1,6 @@
 name: Docs
 on:
   push:
-    paths-ignore:
-      - '*.md'
-      - '.mailmap'
   workflow_dispatch:
     inputs:
       skip-deploy:
diff --git a/README-dev.md b/README-dev.md
index 78cced2..07d3baf 100644
--- a/README-dev.md
+++ b/README-dev.md
@@ -7,7 +7,7 @@
 Code style
 ----------
 
-ndn-cxx code is subject to [ndn-cxx code style](https://named-data.net/doc/ndn-cxx/current/code-style.html).
+ndn-cxx code is subject to [ndn-cxx code style](https://docs.named-data.net/ndn-cxx/current/code-style.html).
 
 Licensing
 ---------
diff --git a/docs/examples.rst b/docs/examples.rst
index 08b3bdb..a778b25 100644
--- a/docs/examples.rst
+++ b/docs/examples.rst
@@ -5,7 +5,7 @@
 
     To successfully run the following examples, please make sure that NFD is properly
     configured and running.  For more information about NFD, refer to `NFD's official
-    homepage <https://named-data.net/doc/NFD/>`_.
+    homepage <https://docs.named-data.net/NFD/>`__.
 
 Trivial consumer
 ----------------
diff --git a/docs/index.rst b/docs/index.rst
index 70f99fe..df9f084 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -65,7 +65,7 @@
 Issues
 ------
 
-Please submit any bugs or feature requests to the
+Please submit any bug reports or feature requests to the
 `ndn-cxx issue tracker <https://redmine.named-data.net/projects/ndn-cxx/issues>`__.
 
 License
diff --git a/docs/named_data_theme/named_data_header.html b/docs/named_data_theme/named_data_header.html
index 9179303..1bb6abc 100644
--- a/docs/named_data_theme/named_data_header.html
+++ b/docs/named_data_theme/named_data_header.html
@@ -32,7 +32,7 @@
 
          <!--top menu-->
          <div class="nine columns" id="menu_container" >
-           <h1><a href="https://named-data.net/doc/ndn-cxx/$projectnumber/">$projectname $projectnumber documentation</a></h1>
+           <h1><a href="https://docs.named-data.net/ndn-cxx/$projectnumber/">$projectname $projectnumber documentation</a></h1>
          </div>
     </div>
 </div><!--header container end-->
diff --git a/docs/release-notes/release-notes-0.1.0.rst b/docs/release-notes/release-notes-0.1.0.rst
index 0e0ac7f..8f54a02 100644
--- a/docs/release-notes/release-notes-0.1.0.rst
+++ b/docs/release-notes/release-notes-0.1.0.rst
@@ -35,7 +35,7 @@
 
 - **Wire format**
 
-  + Full support of `NDN-TLV packet format v0.1 <https://named-data.net/doc/NDN-packet-spec/0.1/>`_
+  + Full support of `NDN-TLV packet format v0.1 <https://docs.named-data.net/NDN-packet-spec/0.1/>`__
   + Pure C++ implementation of wire encoding/decoding with simple access to wire format
     of all NDN packet abstractions via ``wireEncode`` and ``wireDecode`` methods
 
diff --git a/docs/release-notes/release-notes-0.2.0.rst b/docs/release-notes/release-notes-0.2.0.rst
index 194c94b..5d804bf 100644
--- a/docs/release-notes/release-notes-0.2.0.rst
+++ b/docs/release-notes/release-notes-0.2.0.rst
@@ -38,7 +38,7 @@
   + New :ndn-cxx:`SignatureSha256WithEcdsa` signature type
 
   + Updates in ``Signature`` data structure to reflect changes in the `NDN-TLV spec v0.1.1
-    <https://named-data.net/doc/NDN-packet-spec/0.1.1/>`_
+    <https://docs.named-data.net/NDN-packet-spec/0.1.1/>`__
 
 - **Wire encoding**
 
@@ -111,8 +111,8 @@
   + Allow user to explicitly specify the cert name prefix before 'KEY' component in
     ``ndnsec-certgen``
 
-  + ``SignatureSha256`` has been renamed to :ndn-cxx:`DigestSha256` to conform to
-    `NDN-TLV specification <https://named-data.net/doc/NDN-packet-spec/0.1.1/>`_
+  + ``SignatureSha256`` has been renamed to :ndn-cxx:`DigestSha256` to conform to the
+    `NDN-TLV specification <https://docs.named-data.net/NDN-packet-spec/0.1.1/>`__
 
   + Add checking of Timestamp and Nonce fields in signed Interest within
     :ndn-cxx:`ValidatorConfig`
diff --git a/docs/release-notes/release-notes-0.5.0.rst b/docs/release-notes/release-notes-0.5.0.rst
index 6c6a750..7310816 100644
--- a/docs/release-notes/release-notes-0.5.0.rst
+++ b/docs/release-notes/release-notes-0.5.0.rst
@@ -113,7 +113,7 @@
   ``security::v1::PublicKey``, ``security::v1::Certificate``, ``security::v1::IdentityCertificate``,
   ``security::v1::CertificateExtension``, ``security::v1::CertificateSubjectDescription`` instead.
   The next release will feature `a new version of the NDN Certificate format
-  <https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html>`__.
+  <https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html>`__.
 
 Removed
 ^^^^^^^
diff --git a/docs/release-notes/release-notes-0.5.1.rst b/docs/release-notes/release-notes-0.5.1.rst
index 455a19a..8108300 100644
--- a/docs/release-notes/release-notes-0.5.1.rst
+++ b/docs/release-notes/release-notes-0.5.1.rst
@@ -16,7 +16,7 @@
 - Add version 2 of the security framework in ``security::v2`` namespace
 
   * `NDN Certificate Format version 2.0
-    <https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html>`__ (:issue:`3103`)
+    <https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html>`__ (:issue:`3103`)
   * New Public Information Base (PIB) and Trusted Platform Module (TPM) framework to manage
     public/private keys and NDN Certificate version 2.0 (:issue:`2948`, :issue:`3202`)
   * New KeyChain implementation (:issue:`2926`)
diff --git a/docs/release-notes/release-notes-0.6.0.rst b/docs/release-notes/release-notes-0.6.0.rst
index da66436..904eb1d 100644
--- a/docs/release-notes/release-notes-0.6.0.rst
+++ b/docs/release-notes/release-notes-0.6.0.rst
@@ -16,7 +16,7 @@
   At the same time, management APIs for :ndn-cxx:`ValidatorConfig` remained intact;
   transition to the new framework only requires adjusting :ndn-cxx:`Validator::validate`
   calls and updating configuration files to follow the naming conventions of the new
-  `Certificate format <https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html>`__.
+  `Certificate format <https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html>`__.
 
 - Integration of fetching certificates using Certificate Bundle as part of specialized
   ``CertificateFetcher`` (:issue:`3891`)
diff --git a/docs/release-notes/release-notes-0.6.2.rst b/docs/release-notes/release-notes-0.6.2.rst
index 9864fd2..475be97 100644
--- a/docs/release-notes/release-notes-0.6.2.rst
+++ b/docs/release-notes/release-notes-0.6.2.rst
@@ -7,7 +7,7 @@
 ^^^^^^^^^^^^
 
 - Initial support for `NDN packet format version 0.3
-  <https://named-data.net/doc/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
+  <https://docs.named-data.net/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
 
   * Recognize typed name components, allow typed name component in ``FinalBlockId``
     (:issue:`4526`)
diff --git a/docs/release-notes/release-notes-0.6.3.rst b/docs/release-notes/release-notes-0.6.3.rst
index 7f8769d..64b555d 100644
--- a/docs/release-notes/release-notes-0.6.3.rst
+++ b/docs/release-notes/release-notes-0.6.3.rst
@@ -13,7 +13,7 @@
 ^^^^^^^^^^^^
 
 - More support for `NDN packet format version 0.3
-  <https://named-data.net/doc/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
+  <https://docs.named-data.net/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
 
   - Allow applications to declare a default ``CanBePrefix`` setting (:issue:`4581`)
 
diff --git a/docs/release-notes/release-notes-0.6.5.rst b/docs/release-notes/release-notes-0.6.5.rst
index ead42d9..6472cf2 100644
--- a/docs/release-notes/release-notes-0.6.5.rst
+++ b/docs/release-notes/release-notes-0.6.5.rst
@@ -7,7 +7,7 @@
 ^^^^^^^^^^^^
 
 - More support for `NDN packet format version 0.3
-  <https://named-data.net/doc/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
+  <https://docs.named-data.net/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
 
   * Stop using ``ChildSelector`` in ``NotificationSubscriber`` (:issue:`4664`)
 
diff --git a/docs/release-notes/release-notes-0.6.6.rst b/docs/release-notes/release-notes-0.6.6.rst
index 858f44b..105aa95 100644
--- a/docs/release-notes/release-notes-0.6.6.rst
+++ b/docs/release-notes/release-notes-0.6.6.rst
@@ -5,15 +5,15 @@
 
 .. note::
    This is the last release to support the `NDN packet format version 0.2.1
-   <https://named-data.net/doc/NDN-packet-spec/0.2.1/>`__.
+   <https://docs.named-data.net/NDN-packet-spec/0.2.1/>`__.
    The next release will be able to encode and decode only the `v0.3 packet format
-   <https://named-data.net/doc/NDN-packet-spec/0.3/>`__.
+   <https://docs.named-data.net/NDN-packet-spec/0.3/>`__.
 
 New features
 ^^^^^^^^^^^^
 
 - More support for `NDN packet format version 0.3
-  <https://named-data.net/doc/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
+  <https://docs.named-data.net/NDN-packet-spec/0.3/>`__ (:issue:`4527`)
 
   * Support new naming conventions to encode/decode segment numbers, byte offsets, versions,
     timestamps, and sequence numbers based on typed name components (:issue:`4777`)
diff --git a/docs/release-notes/release-notes-0.7.0.rst b/docs/release-notes/release-notes-0.7.0.rst
index d726e66..4c228db 100644
--- a/docs/release-notes/release-notes-0.7.0.rst
+++ b/docs/release-notes/release-notes-0.7.0.rst
@@ -6,7 +6,7 @@
 **Breaking Change**
 
 This release features support of only `NDN packet format version 0.3
-<https://named-data.net/doc/NDN-packet-spec/0.3/>`__ (:issue:`4527`, :issue:`4567`,
+<https://docs.named-data.net/NDN-packet-spec/0.3/>`__ (:issue:`4527`, :issue:`4567`,
 :issue:`4709`, :issue:`4913`). The library encodes and interprets Interest and Data
 packets only in 0.3 format; support for version 0.2 has been completely removed. In
 addition, the URI representation of Interest packets has been updated to follow the
diff --git a/docs/release-notes/release-notes-0.7.1.rst b/docs/release-notes/release-notes-0.7.1.rst
index 50f3efb..9c12ad3 100644
--- a/docs/release-notes/release-notes-0.7.1.rst
+++ b/docs/release-notes/release-notes-0.7.1.rst
@@ -12,7 +12,7 @@
 New features
 ^^^^^^^^^^^^
 
-- `Signed Interests <https://named-data.net/doc/NDN-packet-spec/0.3/signed-interest.html>`__
+- `Signed Interests <https://docs.named-data.net/NDN-packet-spec/0.3/signed-interest.html>`__
   according to Packet Specification v0.3 (:issue:`4804`)
 
 - Add "in-order" mode to :ndn-cxx:`SegmentFetcher` and a corresponding signal that is emitted after
diff --git a/docs/release-notes/release-notes-0.8.1.rst b/docs/release-notes/release-notes-0.8.1.rst
index ccba1ca..a90a180 100644
--- a/docs/release-notes/release-notes-0.8.1.rst
+++ b/docs/release-notes/release-notes-0.8.1.rst
@@ -32,7 +32,7 @@
   (:issue:`5112`)
 
 - NFD management commands sent by :ndn-cxx:`nfd::Controller` now use the `new signed Interest
-  format <https://named-data.net/doc/NDN-packet-spec/0.3/signed-interest.html>`__ (:issue:`4804`)
+  format <https://docs.named-data.net/NDN-packet-spec/0.3/signed-interest.html>`__ (:issue:`4804`)
 
 Improvements and bug fixes
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/docs/releases.rst b/docs/releases.rst
index 7f8905e..19af1f9 100644
--- a/docs/releases.rst
+++ b/docs/releases.rst
@@ -10,37 +10,37 @@
    release-notes/*
 
 * **ndn-cxx version 0.8.1**
-  (:doc:`Release Notes <release-notes/release-notes-0.8.1>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.8.1/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.8.1>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.8.1/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.8.1>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.8.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.8.1.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.8.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.8.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.8.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.8.0>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.8.0/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.8.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.8.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.8.0.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.7.1**
-  (:doc:`Release Notes <release-notes/release-notes-0.7.1>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.7.1/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.7.1>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.7.1/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.7.1>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.7.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.7.1.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.7.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.7.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.7.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.7.0>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.7.0/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.7.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.7.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.7.0.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.6.6**
-  (:doc:`Release Notes <release-notes/release-notes-0.6.6>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.6.6/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.6.6>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.6.6/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.6.6>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.6.6.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.6.6.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.6.5**
-  (:doc:`Release Notes <release-notes/release-notes-0.6.5>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.6.5/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.6.5>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.6.5/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.6.5>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.6.5.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.6.5.tar.bz2.sha256>`__)
@@ -48,85 +48,85 @@
 * **ndn-cxx version 0.6.4** was skipped
 
 * **ndn-cxx version 0.6.3**
-  (:doc:`Release Notes <release-notes/release-notes-0.6.3>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.6.3/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.6.3>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.6.3/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.6.3>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.6.3.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.6.3.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.6.2**
-  (:doc:`Release Notes <release-notes/release-notes-0.6.2>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.6.2/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.6.2>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.6.2/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.6.2>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.6.2.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.6.2.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.6.1**
-  (:doc:`Release Notes <release-notes/release-notes-0.6.1>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.6.1/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.6.1>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.6.1/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.6.1>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.6.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.6.1.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.6.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.6.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.6.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.6.0>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.6.0/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.6.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.6.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.6.0.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.5.1**
-  (:doc:`Release Notes <release-notes/release-notes-0.5.1>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.5.1/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.5.1>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.5.1/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.5.1>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.5.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.5.1.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.5.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.5.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.5.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.5.0>`, `Documentation <https://docs.named-data.net/ndn-cxx/0.5.0/>`__)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.5.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.5.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.5.0.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.4.1**
-  (:doc:`Release Notes <release-notes/release-notes-0.4.1>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.4.1/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.4.1>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.4.1>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.4.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.4.1.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.4.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.4.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.4.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.4.0>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.4.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.4.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.4.0.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.3.4**
-  (:doc:`Release Notes <release-notes/release-notes-0.3.4>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.3.4/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.3.4>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.3.4>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.3.4.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.3.4.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.3.3**
-  (:doc:`Release Notes <release-notes/release-notes-0.3.3>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.3.3/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.3.3>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.3.3>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.3.3.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.3.3.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.3.2**
-  (:doc:`Release Notes <release-notes/release-notes-0.3.2>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.3.2/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.3.2>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.3.2>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.3.2.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.3.2.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.3.1**
-  (:doc:`Release Notes <release-notes/release-notes-0.3.1>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.3.1/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.3.1>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.3.1>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.3.1.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.3.1.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.3.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.3.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.3.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.3.0>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.3.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.3.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.3.0.tar.bz2.sha256>`__)
 
 * **ndn-cxx version 0.2.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.2.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.2.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.2.0>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.2.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.2.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.2.0.tar.bz2.sha256>`__)
@@ -138,7 +138,7 @@
     `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.2.0-rc2>`__
 
 * **ndn-cxx version 0.1.0**
-  (:doc:`Release Notes <release-notes/release-notes-0.1.0>`, `Documentation <https://named-data.net/doc/ndn-cxx/0.1.0/>`__)
+  (:doc:`Release Notes <release-notes/release-notes-0.1.0>`)
 
   `src (git) <https://github.com/named-data/ndn-cxx/releases/tag/ndn-cxx-0.1.0>`__,
   `src (tarball) <https://named-data.net/downloads/ndn-cxx-0.1.0.tar.bz2>`__ (`checksum <https://named-data.net/downloads/ndn-cxx-0.1.0.tar.bz2.sha256>`__)
diff --git a/docs/specs/safe-bag.rst b/docs/specs/safe-bag.rst
index b4ae80a..5d90ae7 100644
--- a/docs/specs/safe-bag.rst
+++ b/docs/specs/safe-bag.rst
@@ -4,7 +4,7 @@
 Sometimes it may be necessary to export an identity's credentials (i.e., private key and associated
 certificate) from one machine and import them into another. This requires a secure container to
 carry the sensitive information. For this purpose, we define the **SafeBag** format, which contains
-an `NDN certificate <https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html>`__ and the
+an `NDN certificate <https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html>`__ and the
 corresponding private key in encrypted form. The private key is formatted as a DER-encoded
 :rfc:`EncryptedPrivateKeyInfo <5208#section-6>` structure as described in PKCS #8.
 
diff --git a/docs/specs/signed-interest.rst b/docs/specs/signed-interest.rst
index 56b9323..67a88b3 100644
--- a/docs/specs/signed-interest.rst
+++ b/docs/specs/signed-interest.rst
@@ -4,7 +4,7 @@
 .. warning::
     This document describes a deprecated format for signed Interest packets. The current format can
     be found in the
-    `NDN Packet Specification <https://named-data.net/doc/NDN-packet-spec/current/signed-interest.html>`__.
+    `NDN Packet Specification <https://docs.named-data.net/NDN-packet-spec/current/signed-interest.html>`__.
 
 **Signed Interest** is a mechanism to issue an authenticated interest.
 
@@ -52,21 +52,21 @@
 
 The value of the n-3 *th* component is the interest's timestamp (in terms of millisecond offset
 from UTC 1970-01-01 00:00:00) encoded as
-`NonNegativeInteger <https://named-data.net/doc/NDN-packet-spec/0.2.1/tlv.html#non-negative-integer-encoding>`__.
+`NonNegativeInteger <https://docs.named-data.net/NDN-packet-spec/0.2.1/tlv.html#non-negative-integer-encoding>`__.
 The timestamp may be used to protect against replay attack.
 
 Nonce component (n-2 *th*)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The value of the n-2 *th* component is random value (encoded as
-`NonNegativeInteger <https://named-data.net/doc/NDN-packet-spec/0.2.1/tlv.html#non-negative-integer-encoding>`__)
+`NonNegativeInteger <https://docs.named-data.net/NDN-packet-spec/0.2.1/tlv.html#non-negative-integer-encoding>`__)
 that adds additional assurances that the interest will be unique.
 
 SignatureInfo component (n-1 *th*)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The value of the n-1 *th* component is actually a
-`SignatureInfo <https://named-data.net/doc/NDN-packet-spec/0.2.1/signature.html>`__ TLV.
+`SignatureInfo <https://docs.named-data.net/NDN-packet-spec/0.2.1/signature.html>`__ TLV.
 
 ::
 
@@ -84,7 +84,7 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The value of the n *th* component is actually a
-`SignatureValue <https://named-data.net/doc/NDN-packet-spec/0.2.1/signature.html>`__ TLV.
+`SignatureValue <https://docs.named-data.net/NDN-packet-spec/0.2.1/signature.html>`__ TLV.
 
 ::
 
@@ -109,7 +109,7 @@
    missing or cannot be parsed correctly;
 -  the key is not trusted for signing the Interest;
 -  the signature cannot be verified with the public key pointed by the
-   `KeyLocator <https://named-data.net/doc/NDN-packet-spec/0.2.1/signature.html#keylocator>`__ in
+   `KeyLocator <https://docs.named-data.net/NDN-packet-spec/0.2.1/signature.html#keylocator>`__ in
    SignatureInfo.
 
 Recipients of a signed interest may further check the timestamp and the uniqueness of the
diff --git a/ndn-cxx/data.hpp b/ndn-cxx/data.hpp
index 6545dec..57e0c9a 100644
--- a/ndn-cxx/data.hpp
+++ b/ndn-cxx/data.hpp
@@ -33,7 +33,7 @@
 
 /**
  * @brief Represents a %Data packet.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/data.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/data.html
  */
 class Data : public PacketBase, public std::enable_shared_from_this<Data>
 {
diff --git a/ndn-cxx/encoding/block.hpp b/ndn-cxx/encoding/block.hpp
index 81269c8..9f8a772 100644
--- a/ndn-cxx/encoding/block.hpp
+++ b/ndn-cxx/encoding/block.hpp
@@ -39,7 +39,7 @@
 
 /**
  * @brief Represents a TLV element of the NDN packet format.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html
  */
 class Block
 {
diff --git a/ndn-cxx/encoding/encoder.hpp b/ndn-cxx/encoding/encoder.hpp
index 8415156..27177ad 100644
--- a/ndn-cxx/encoding/encoder.hpp
+++ b/ndn-cxx/encoding/encoder.hpp
@@ -65,28 +65,28 @@
 
   /**
    * @brief Prepend @p number encoded as a VAR-NUMBER in NDN-TLV format
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html
    */
   size_t
   prependVarNumber(uint64_t number);
 
   /**
    * @brief Append @p number encoded as a VAR-NUMBER in NDN-TLV format
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html
    */
   size_t
   appendVarNumber(uint64_t number);
 
   /**
    * @brief Prepend @p integer encoded as a NonNegativeInteger in NDN-TLV format
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html
    */
   size_t
   prependNonNegativeInteger(uint64_t integer);
 
   /**
    * @brief Append @p integer encoded as a NonNegativeInteger in NDN-TLV format
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html
    */
   size_t
   appendNonNegativeInteger(uint64_t integer);
diff --git a/ndn-cxx/encoding/tlv.hpp b/ndn-cxx/encoding/tlv.hpp
index 7ff7895..176d609 100644
--- a/ndn-cxx/encoding/tlv.hpp
+++ b/ndn-cxx/encoding/tlv.hpp
@@ -60,7 +60,7 @@
 
 /**
  * @brief TLV-TYPE numbers defined in NDN Packet Format v0.3.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/types.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/types.html
  * @sa https://redmine.named-data.net/projects/ndn-tlv/wiki/NameComponentType
  */
 enum : uint32_t {
@@ -121,7 +121,7 @@
 
 /**
  * @brief SignatureType values.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/signature.html#signaturetype
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/signature.html#signaturetype
  * @sa https://redmine.named-data.net/projects/ndn-tlv/wiki/SignatureType
  */
 enum SignatureTypeValue : uint16_t {
@@ -138,7 +138,7 @@
 
 /**
  * @brief ContentType values.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/data.html#contenttype
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/data.html#contenttype
  * @sa https://redmine.named-data.net/projects/ndn-tlv/wiki/ContentType
  */
 enum ContentTypeValue : uint32_t {
@@ -156,7 +156,7 @@
 
 /**
  * @brief Determine whether a TLV-TYPE is "critical" for evolvability purpose.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html#considerations-for-evolvability-of-tlv-based-encoding
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html#considerations-for-evolvability-of-tlv-based-encoding
  */
 constexpr bool
 isCriticalType(uint32_t type) noexcept
diff --git a/ndn-cxx/interest.hpp b/ndn-cxx/interest.hpp
index 00a2528..d282052 100644
--- a/ndn-cxx/interest.hpp
+++ b/ndn-cxx/interest.hpp
@@ -44,7 +44,7 @@
 
 /**
  * @brief Represents an %Interest packet.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/interest.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/interest.html
  */
 class Interest : public PacketBase, public std::enable_shared_from_this<Interest>
 {
diff --git a/ndn-cxx/link.hpp b/ndn-cxx/link.hpp
index 6afac64..02c0406 100644
--- a/ndn-cxx/link.hpp
+++ b/ndn-cxx/link.hpp
@@ -28,7 +28,7 @@
 
 /**
  * @brief Represents a `%LinkObject` TLV element.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/link.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/link.html
  */
 class Link : public Data
 {
diff --git a/ndn-cxx/meta-info.hpp b/ndn-cxx/meta-info.hpp
index 39be414..ff8a1fe 100644
--- a/ndn-cxx/meta-info.hpp
+++ b/ndn-cxx/meta-info.hpp
@@ -56,7 +56,7 @@
  * Note that AppMetaInfo elements are application-defined and must have a TLV-TYPE inside
  * the range reserved for application use, i.e., `[128, 252]`.
  *
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/data.html#metainfo
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/data.html#metainfo
  */
 class MetaInfo
 {
@@ -147,7 +147,7 @@
    * This method will replace all existing app-defined MetaInfo items, if they existed.
    *
    * @throw Error if some block in @p info has type not in the application range
-   *              (https://named-data.net/doc/NDN-packet-spec/0.3/types.html)
+   *              (https://docs.named-data.net/NDN-packet-spec/0.3/types.html)
    *
    * @note If MetaInfo is decoded from wire and setType, setFreshnessPeriod, or setFinalBlock
    *       is called before *AppMetaInfo, all app-defined blocks will be lost
@@ -159,7 +159,7 @@
    * @brief Add an app-defined MetaInfo item.
    *
    * @throw Error if @p block has type not in the application range
-   *              (https://named-data.net/doc/NDN-packet-spec/0.3/types.html)
+   *              (https://docs.named-data.net/NDN-packet-spec/0.3/types.html)
    *
    * @note If MetaInfo is decoded from wire and setType, setFreshnessPeriod, or setFinalBlock
    *       is called before *AppMetaInfo, all app-defined blocks will be lost
@@ -184,7 +184,7 @@
    * @return NULL if an item is not found, otherwise const pointer to the item
    *
    * @throw Error if @p tlvType is not in the application range
-   *              (https://named-data.net/doc/NDN-packet-spec/0.3/types.html)
+   *              (https://docs.named-data.net/NDN-packet-spec/0.3/types.html)
    *
    * @note If MetaInfo is decoded from wire and setType, setFreshnessPeriod, or setFinalBlock
    *       is called before *AppMetaInfo, all app-defined blocks will be lost
diff --git a/ndn-cxx/name-component.hpp b/ndn-cxx/name-component.hpp
index 103a55d..afd42a0 100644
--- a/ndn-cxx/name-component.hpp
+++ b/ndn-cxx/name-component.hpp
@@ -31,7 +31,7 @@
 
 /**
  * @brief Format used for the URI representation of a name.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
  */
 enum class UriFormat {
   /// Always use `<type-number>=<percent-encoded-value>` format
@@ -282,14 +282,14 @@
 
   /**
    * @brief Write `*this` to the output stream, escaping characters according to the NDN URI format.
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
    */
   void
   toUri(std::ostream& os, UriFormat format = UriFormat::DEFAULT) const;
 
   /**
    * @brief Convert `*this` by escaping characters according to the NDN URI format.
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
    */
   std::string
   toUri(UriFormat format = UriFormat::DEFAULT) const;
@@ -297,7 +297,7 @@
 public: // naming conventions
   /**
    * @brief Check if the component is a NonNegativeInteger
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
    */
   bool
   isNumber() const noexcept;
@@ -347,7 +347,7 @@
 
   /**
    * @brief Interpret this name component as a NonNegativeInteger
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
    * @return The decoded non-negative integer.
    */
   uint64_t
@@ -410,7 +410,7 @@
   /**
    * @brief Create a component encoded as NonNegativeInteger
    *
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
    *
    * @param number The non-negative number
    * @param type TLV-TYPE
@@ -487,7 +487,7 @@
   /**
    * @brief Check if the component is an ImplicitSha256DigestComponent
    * @sa https://redmine.named-data.net/projects/ndn-tlv/wiki/NameComponentType
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#implicit-digest-component
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#implicit-digest-component
    */
   bool
   isImplicitSha256Digest() const noexcept;
@@ -511,7 +511,7 @@
   /**
    * @brief Check if the component is a ParametersSha256DigestComponent
    * @sa https://redmine.named-data.net/projects/ndn-tlv/wiki/NameComponentType
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#parameters-digest-component
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#parameters-digest-component
    */
   bool
   isParametersSha256Digest() const noexcept;
@@ -566,7 +566,7 @@
    * @retval zero this equals other
    * @retval positive this comes after other in canonical ordering
    *
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#canonical-order
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#canonical-order
    */
   int
   compare(const Component& other) const;
diff --git a/ndn-cxx/name.hpp b/ndn-cxx/name.hpp
index 2ee37d3..62066fc 100644
--- a/ndn-cxx/name.hpp
+++ b/ndn-cxx/name.hpp
@@ -38,7 +38,7 @@
 
 /**
  * @brief Represents an absolute name.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html
  */
 class Name
 {
@@ -82,18 +82,18 @@
 
   /** @brief Parse name from NDN URI.
    *  @param uri a null-terminated URI string
-   *  @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+   *  @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
    */
   Name(const char* uri);
 
   /** @brief Create name from NDN URI.
    *  @param uri a URI string
-   *  @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+   *  @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
    */
   Name(std::string uri);
 
   /** @brief Write URI representation of the name to the output stream.
-   *  @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+   *  @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
    */
   void
   toUri(std::ostream& os, name::UriFormat format = name::UriFormat::DEFAULT) const;
@@ -101,7 +101,7 @@
   /** @brief Get URI representation of the name.
    *  @return URI representation; the "ndn:" scheme identifier is not included
    *  @note To print URI representation into a stream, it is more efficient to use `os << name`.
-   *  @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+   *  @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
    */
   std::string
   toUri(name::UriFormat format = name::UriFormat::DEFAULT) const;
@@ -390,7 +390,7 @@
 
   /** @brief Append a component with a NonNegativeInteger.
    *  @return A reference to this Name, to allow chaining.
-   *  @sa https://named-data.net/doc/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
+   *  @sa https://docs.named-data.net/NDN-packet-spec/0.3/tlv.html#non-negative-integer-encoding
    */
   Name&
   appendNumber(uint64_t number)
@@ -632,7 +632,7 @@
    *  @retval zero this equals other
    *  @retval positive this comes after other in canonical ordering
    *
-   *  @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#canonical-order
+   *  @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#canonical-order
    */
   int
   compare(const Name& other) const
@@ -691,7 +691,7 @@
 
   /**
    * @brief Print the URI representation of a name.
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
    */
   friend std::ostream&
   operator<<(std::ostream& os, const Name& name)
@@ -714,7 +714,7 @@
 
 /**
  * @brief Parse URI from stream as Name.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
  */
 std::istream&
 operator>>(std::istream& is, Name& name);
diff --git a/ndn-cxx/security/additional-description.hpp b/ndn-cxx/security/additional-description.hpp
index a30507b..d42aca7 100644
--- a/ndn-cxx/security/additional-description.hpp
+++ b/ndn-cxx/security/additional-description.hpp
@@ -33,7 +33,7 @@
 
 /**
  * @brief Represents an %AdditionalDescription TLV element.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html
  */
 class AdditionalDescription
 {
diff --git a/ndn-cxx/security/certificate.hpp b/ndn-cxx/security/certificate.hpp
index 7ab4ee1..0578cd5 100644
--- a/ndn-cxx/security/certificate.hpp
+++ b/ndn-cxx/security/certificate.hpp
@@ -54,7 +54,7 @@
  * - `Key %Name` is the logical name of the key used for management purposes.  The key name
  *   includes the identity name, the keyword `KEY`, and the `KeyId` component.
  *
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html
  */
 class Certificate : public Data
 {
diff --git a/ndn-cxx/security/interest-signer.hpp b/ndn-cxx/security/interest-signer.hpp
index e1d252a..76d73f5 100644
--- a/ndn-cxx/security/interest-signer.hpp
+++ b/ndn-cxx/security/interest-signer.hpp
@@ -38,7 +38,7 @@
   /**
    * @brief Flags to indicate which elements to include in Interest signatures created with
    *        makeSignedInterest.
-   * @sa https://named-data.net/doc/NDN-packet-spec/0.3/signature.html#interest-signature
+   * @sa https://docs.named-data.net/NDN-packet-spec/0.3/signature.html#interest-signature
    */
   enum SigningFlags : uint32_t {
     WantNonce = 1 << 0,
diff --git a/ndn-cxx/security/key-chain.hpp b/ndn-cxx/security/key-chain.hpp
index a91e498..5e2f31a 100644
--- a/ndn-cxx/security/key-chain.hpp
+++ b/ndn-cxx/security/key-chain.hpp
@@ -323,7 +323,7 @@
    *                                or certificate does not exist
    * @see SigningInfo
    * @see SignatureInfo
-   * @see https://named-data.net/doc/NDN-packet-spec/0.3/signed-interest.html
+   * @see https://docs.named-data.net/NDN-packet-spec/0.3/signed-interest.html
    */
   void
   sign(Interest& interest, const SigningInfo& params = SigningInfo());
diff --git a/ndn-cxx/security/validation-policy-signed-interest.hpp b/ndn-cxx/security/validation-policy-signed-interest.hpp
index e0caf85..a600c00 100644
--- a/ndn-cxx/security/validation-policy-signed-interest.hpp
+++ b/ndn-cxx/security/validation-policy-signed-interest.hpp
@@ -39,7 +39,7 @@
  *
  * This policy checks the timestamp, sequence number, and/or nonce fields of signed Interests.
  *
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/signed-interest.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/signed-interest.html
  */
 class ValidationPolicySignedInterest : public ValidationPolicy
 {
diff --git a/ndn-cxx/security/validity-period.hpp b/ndn-cxx/security/validity-period.hpp
index 518c952..a8a1c0f 100644
--- a/ndn-cxx/security/validity-period.hpp
+++ b/ndn-cxx/security/validity-period.hpp
@@ -31,7 +31,7 @@
 
 /**
  * @brief Represents a %ValidityPeriod TLV element.
- * @sa https://named-data.net/doc/NDN-packet-spec/0.3/certificate.html
+ * @sa https://docs.named-data.net/NDN-packet-spec/0.3/certificate.html
  */
 class ValidityPeriod
 {
