ICU-21304 Update old userguide links to unicode-org.github.io
diff --git a/docs/ide4c/vscode/README.md b/docs/ide4c/vscode/README.md
index 671eaf9..c8478a5 100644
--- a/docs/ide4c/vscode/README.md
+++ b/docs/ide4c/vscode/README.md
@@ -18,5 +18,6 @@
       initial bad system performance when a new build is launched.
 
 NOTE:
-Run the [`./runConfigureICU` command](http://userguide.icu-project.org/icufaq)
+Run the
+[`./runConfigureICU` command](https://unicode-org.github.io/icu/userguide/icufaq)
 before building `icu4c` from VSCode.
diff --git a/docs/userguide/icu4c-readme.md b/docs/userguide/icu4c-readme.md
index e6748b2..31ed71c 100644
--- a/docs/userguide/icu4c-readme.md
+++ b/docs/userguide/icu4c-readme.md
@@ -217,7 +217,7 @@
           environment variable to the out/ or the out/build/ directories, but
           this is generally discouraged because most people set it incorrectly.
           You can view the <a href=
-          "http://userguide.icu-project.org/icudata">ICU Data
+          "https://unicode-org.github.io/icu/userguide/icudata">ICU Data
           Management</a> section of the ICU User's Guide for details.</p>
         </td>
       </tr>
@@ -396,7 +396,7 @@
     Note: The ICU test suites _can_ be compiled with this setting.
 *   **.dat file:** By default, the ICU data is built into a shared library (DLL). This is convenient because it requires no install-time or runtime configuration, but the library is platform-specific and cannot be modified. A .dat package file makes the opposite trade-off: Platform-portable (except for endianness and charset family, which can be changed with the icupkg tool) and modifiable (also with the icupkg tool). If a path is set, then single data files (e.g., .res files) can be copied to that location to provide new locale data or conversion tables etc.  
     The only drawback with a .dat package file is that the application needs to provide ICU with the file system path to the package file (e.g., by calling `u_setDataDirectory()`) or with a pointer to the data (`udata_setCommonData()`) before other ICU API calls. This is usually easy if ICU is used from an application where `main()` takes care of such initialization. It may be hard if ICU is shipped with another shared library (such as the Xerces-C++ XML parser) which does not control `main()`.  
-    See the [User Guide ICU Data](http://userguide.icu-project.org/icudata) chapter for more details.  
+    See the [User Guide ICU Data](https://unicode-org.github.io/icu/userguide/icudata) chapter for more details.
     If possible, we recommend building the .dat package. Specify `--with-data-packaging=archive` on the configure command line, as in  
     `runConfigureICU Linux --with-data-packaging=archive`  
     (Read the configure script's output for further instructions. On Windows, the Visual Studio build generates both the .dat package and the data DLL.)  
@@ -416,7 +416,7 @@
 
 #### ICU as a System-Level Library
 
-If ICU is installed as a system-level library, there are further opportunities and restrictions to consider. For details, see the _Using ICU as an Operating System Level Library_ section of the [User Guide ICU Architectural Design](http://userguide.icu-project.org/design) chapter.
+If ICU is installed as a system-level library, there are further opportunities and restrictions to consider. For details, see the _Using ICU as an Operating System Level Library_ section of the [User Guide ICU Architectural Design](https://unicode-org.github.io/icu/userguide/design) chapter.
 
 *   **Data path:** For a system-level library, it is best to load ICU data from the .dat package file because the file system path to the .dat package file can be hardcoded. ICU will automatically set the path to the final install location using U_ICU_DATA_DEFAULT_DIR. Alternatively, you can set `-DICU_DATA_DIR=/path/to/icu/data` when building the ICU code. (Used by source/common/putil.c.)  
     Consider also setting `-DICU_NO_USER_DATA_OVERRIDE` if you do not want the "ICU_DATA" environment variable to be used. (An application can still override the data path via `u_setDataDirectory()` or `udata_setCommonData()`.
@@ -808,7 +808,7 @@
 1.  Add a suffix name to the library names. This can be done with the --with-library-suffix configure option.
 2.  The installation script should install the ICU libraries into the application's directory.
 
-Following these guidelines prevents other applications that use a standard ICU distribution from conflicting with any libraries that you need. On operating systems that do not have a standard C++ ABI (name mangling) for compilers, it is recommended to do this special packaging anyway. More details on customizing ICU are available in the [User's Guide](http://userguide.icu-project.org/). The [ICU Source Code Organization](#SourceCode) section of this readme.html gives a more complete description of the libraries.
+Following these guidelines prevents other applications that use a standard ICU distribution from conflicting with any libraries that you need. On operating systems that do not have a standard C++ ABI (name mangling) for compilers, it is recommended to do this special packaging anyway. More details on customizing ICU are available in the [User's Guide](https://unicode-org.github.io/icu/userguide/). The [ICU Source Code Organization](#SourceCode) section of this readme.html gives a more complete description of the libraries.
 
 <table class="docTable" summary="ICU has several libraries for you to use."><caption>Here is an example of libraries that are frequently packaged.</caption>
 
@@ -834,7 +834,7 @@
 
 <td>libicudata.so._XY_._Z_</td>
 
-<td>Data required by the Common and I18n libraries. There are many ways to package and [customize this data](http://userguide.icu-project.org/icudata), but by default this is all you need.</td>
+<td>Data required by the Common and I18n libraries. There are many ways to package and [customize this data](https://unicode-org.github.io/icu/userguide/icudata), but by default this is all you need.</td>
 
 </tr>
 
@@ -982,7 +982,7 @@
 
 For some people, it may not be necessary for completely build ICU. Most of the makefiles and build targets are for tools that are used for building ICU's data, and an application's data (when an application uses ICU resource bundles for its data).
 
-Data files can be built on a different platform when both platforms share the same endianness and the same charset family. This assertion does not include platform dependent DLLs/shared/static libraries. For details see the User Guide [ICU Data](http://userguide.icu-project.org/icudata) chapter.
+Data files can be built on a different platform when both platforms share the same endianness and the same charset family. This assertion does not include platform dependent DLLs/shared/static libraries. For details see the User Guide [ICU Data](https://unicode-org.github.io/icu/userguide/icudata) chapter.
 
 ICU 3.6 removes the requirement that ICU be completely built in the native operating environment. It adds the icupkg tool which can be run on any platform to turn binary ICU data files from any one of the three formats into any one of the other data formats. This allows a application to use ICU data built anywhere to be used for any other target platform.
 
@@ -1027,4 +1027,4 @@
 * * *
 
 Copyright © 2016 and later: Unicode, Inc. and others. License & terms of use: [http://www.unicode.org/copyright.html](http://www.unicode.org/copyright.html)  
-Copyright © 1997-2016 International Business Machines Corporation and others. All Rights Reserved.
\ No newline at end of file
+Copyright © 1997-2016 International Business Machines Corporation and others. All Rights Reserved.
diff --git a/icu4c/readme.html b/icu4c/readme.html
index 222b11c..2b2c4ec 100644
--- a/icu4c/readme.html
+++ b/icu4c/readme.html
@@ -185,20 +185,21 @@
         <td>FAQ - Frequently Asked Questions about ICU</td>
 
         <td><a href=
-        "http://userguide.icu-project.org/icufaq">http://userguide.icu-project.org/icufaq</a></td>
+        "https://unicode-org.github.io/icu/userguide/icufaq">https://unicode-org.github.io/icu/userguide/icufaq</a></td>
       </tr>
 
       <tr>
         <td>ICU User's Guide</td>
 
         <td><a href=
-        "http://userguide.icu-project.org/">http://userguide.icu-project.org/</a></td>
+        "https://unicode-org.github.io/icu/userguide/">https://unicode-org.github.io/icu/userguide/</a></td>
       </tr>
 
       <tr>
         <td>How To Use ICU</td>
 
-        <td><a href="http://userguide.icu-project.org/howtouseicu">http://userguide.icu-project.org/howtouseicu</a></td>
+        <td><a href=
+        "https://unicode-org.github.io/icu/userguide/howtouseicu">https://unicode-org.github.io/icu/userguide/howtouseicu</a></td>
       </tr>
 
       <tr>
@@ -284,7 +285,7 @@
     <p>In the descriptions below, <strong><i>&lt;ICU&gt;</i></strong> is the full
     path name of the ICU directory (the top level directory from the distribution
     archives) in your file system. You can also view the <a href=
-    "http://userguide.icu-project.org/design">ICU Architectural
+    "https://unicode-org.github.io/icu/userguide/design">ICU Architectural
     Design</a> section of the User's Guide to see which libraries you need for
     your software product. You need at least the data (<code>[lib]icudt</code>)
     and the common (<code>[lib]icuuc</code>) libraries in order to use ICU.</p>
@@ -443,7 +444,7 @@
           environment variable to the out/ or the out/build/ directories, but
           this is generally discouraged because most people set it incorrectly.
           You can view the <a href=
-          "http://userguide.icu-project.org/icudata">ICU Data
+          "https://unicode-org.github.io/icu/userguide/icudata">ICU Data
           Management</a> section of the ICU User's Guide for details.</p>
         </td>
       </tr>
@@ -687,7 +688,7 @@
         It may be hard if ICU is shipped with
         another shared library (such as the Xerces-C++ XML parser)
         which does not control <code>main()</code>.<br />
-        See the <a href="http://userguide.icu-project.org/icudata">User Guide ICU Data</a>
+        See the <a href="https://unicode-org.github.io/icu/userguide/icudata">User Guide ICU Data</a>
         chapter for more details.<br />
         If possible, we recommend building the .dat package.
         Specify <code>--with-data-packaging=archive</code>
@@ -723,7 +724,7 @@
     <p>If ICU is installed as a system-level library, there are further
       opportunities and restrictions to consider.
       For details, see the <em>Using ICU as an Operating System Level Library</em>
-      section of the <a href="http://userguide.icu-project.org/design">User Guide ICU Architectural Design</a> chapter.</p>
+      section of the <a href="https://unicode-org.github.io/icu/userguide/design">User Guide ICU Architectural Design</a> chapter.</p>
     <ul>
       <li><b>Data path:</b> For a system-level library, it is best to load
         ICU data from the .dat package file because the file system path
@@ -1507,7 +1508,7 @@
     operating systems that do not have a standard C++ ABI (name mangling) for
     compilers, it is recommended to do this special packaging anyway. More
     details on customizing ICU are available in the <a href=
-    "http://userguide.icu-project.org/">User's Guide</a>. The <a href=
+    "https://unicode-org.github.io/icu/userguide/">User's Guide</a>. The <a href=
     "#SourceCode">ICU Source Code Organization</a> section of this readme.html
     gives a more complete description of the libraries.</p>
 
@@ -1536,7 +1537,7 @@
 
         <td>Data required by the Common and I18n libraries. There are many ways
         to package and <a href=
-        "http://userguide.icu-project.org/icudata">customize this
+        "https://unicode-org.github.io/icu/userguide/icudata">customize this
         data</a>, but by default this is all you need.</td>
       </tr>
 
@@ -1790,7 +1791,7 @@
     <p>Data files can be built on a different platform when both platforms share
     the same endianness and the same charset family. This assertion does not
     include platform dependent DLLs/shared/static libraries. For details see the
-    User Guide <a href="http://userguide.icu-project.org/icudata">ICU
+    User Guide <a href="https://unicode-org.github.io/icu/userguide/icudata">ICU
     Data</a> chapter.</p>
 
     <p>ICU 3.6 removes the requirement that ICU be completely built in the native
diff --git a/icu4c/source/common/putil.cpp b/icu4c/source/common/putil.cpp
index 9223c15..3ed6a05 100644
--- a/icu4c/source/common/putil.cpp
+++ b/icu4c/source/common/putil.cpp
@@ -81,7 +81,7 @@
 #include <float.h>
 
 #ifndef U_COMMON_IMPLEMENTATION
-#error U_COMMON_IMPLEMENTATION not set - must be set for all ICU source files in common/ - see http://userguide.icu-project.org/howtouseicu
+#error U_COMMON_IMPLEMENTATION not set - must be set for all ICU source files in common/ - see https://unicode-org.github.io/icu/userguide/howtouseicu
 #endif
 
 
diff --git a/icu4c/source/common/unicode/docmain.h b/icu4c/source/common/unicode/docmain.h
index 704139a..ccf62d0 100644
--- a/icu4c/source/common/unicode/docmain.h
+++ b/icu4c/source/common/unicode/docmain.h
@@ -53,10 +53,10 @@
  *
  * <h2>Architecture (User's Guide)</h2>
  * <ul>
- *   <li><a href="http://userguide.icu-project.org/">Introduction</a></li>
- *   <li><a href="http://userguide.icu-project.org/i18n">Internationalization</a></li>
- *   <li><a href="http://userguide.icu-project.org/design">Locale Model, Multithreading, Error Handling, etc.</a></li>
- *   <li><a href="http://userguide.icu-project.org/conversion">Conversion</a></li>
+ *   <li><a href="https://unicode-org.github.io/icu/userguide/">Introduction</a></li>
+ *   <li><a href="https://unicode-org.github.io/icu/userguide/i18n">Internationalization</a></li>
+ *   <li><a href="https://unicode-org.github.io/icu/userguide/design">Locale Model, Multithreading, Error Handling, etc.</a></li>
+ *   <li><a href="https://unicode-org.github.io/icu/userguide/conversion">Conversion</a></li>
  * </ul>
  *
  * <hr>
diff --git a/icu4c/source/common/unicode/udata.h b/icu4c/source/common/unicode/udata.h
index bd82347..6caa849 100644
--- a/icu4c/source/common/unicode/udata.h
+++ b/icu4c/source/common/unicode/udata.h
@@ -306,7 +306,7 @@
  * area in memory.
  *
  * ICU data must be at least 8-aligned, and should be 16-aligned.
- * See http://userguide.icu-project.org/icudata
+ * See https://unicode-org.github.io/icu/userguide/icudata
  *
  * The format of this data is that of the icu common data file, as is
  * generated by the pkgdata tool with mode=common or mode=dll.
@@ -353,7 +353,7 @@
  * pointer.
  *
  * ICU data must be at least 8-aligned, and should be 16-aligned.
- * See http://userguide.icu-project.org/icudata
+ * See https://unicode-org.github.io/icu/userguide/icudata
  *
  * The format of this data is that of the icu common data file, like 'icudt26l.dat'
  * or the corresponding shared library (DLL) file.
diff --git a/icu4c/source/common/unicode/unistr.h b/icu4c/source/common/unicode/unistr.h
index 0c9ffd7..456389f 100644
--- a/icu4c/source/common/unicode/unistr.h
+++ b/icu4c/source/common/unicode/unistr.h
@@ -227,7 +227,7 @@
  * The UnicodeString class is not suitable for subclassing.
  *
  * For an overview of Unicode strings in C and C++ see the
- * [User Guide Strings chapter](http://userguide.icu-project.org/strings#TOC-Strings-in-C-C-).
+ * [User Guide Strings chapter](https://unicode-org.github.io/icu/userguide/strings#strings-in-cc).
  *
  * In ICU, a Unicode string consists of 16-bit Unicode *code units*.
  * A Unicode character may be stored with either one code unit
@@ -285,7 +285,7 @@
  * significant performance improvements.
  * Also, the internal buffer is accessible via special functions.
  * For details see the
- * [User Guide Strings chapter](http://userguide.icu-project.org/strings#TOC-Maximizing-Performance-with-the-UnicodeString-Storage-Model).
+ * [User Guide Strings chapter](https://unicode-org.github.io/icu/userguide/strings#maximizing-performance-with-the-unicodestring-storage-model).
  *
  * @see utf.h
  * @see CharacterIterator
diff --git a/icu4c/source/common/unicode/utf.h b/icu4c/source/common/unicode/utf.h
index 36191bd..c9d5f57 100644
--- a/icu4c/source/common/unicode/utf.h
+++ b/icu4c/source/common/unicode/utf.h
@@ -103,7 +103,7 @@
  * code point values (0..U+10ffff). They are indicated with negative values instead.
  *
  * For more information see the ICU User Guide Strings chapter
- * (http://userguide.icu-project.org/strings).
+ * (https://unicode-org.github.io/icu/userguide/strings).
  *
  * <em>Usage:</em>
  * ICU coding guidelines for if() statements should be followed when using these macros.
diff --git a/icu4c/source/common/unicode/utf16.h b/icu4c/source/common/unicode/utf16.h
index 14910e2..3902c60 100644
--- a/icu4c/source/common/unicode/utf16.h
+++ b/icu4c/source/common/unicode/utf16.h
@@ -23,7 +23,7 @@
  * This file defines macros to deal with 16-bit Unicode (UTF-16) code units and strings.
  *
  * For more information see utf.h and the ICU User Guide Strings chapter
- * (http://userguide.icu-project.org/strings).
+ * (https://unicode-org.github.io/icu/userguide/strings).
  *
  * <em>Usage:</em>
  * ICU coding guidelines for if() statements should be followed when using these macros.
diff --git a/icu4c/source/common/unicode/utf8.h b/icu4c/source/common/unicode/utf8.h
index 57e24a6..5a07435 100644
--- a/icu4c/source/common/unicode/utf8.h
+++ b/icu4c/source/common/unicode/utf8.h
@@ -23,7 +23,7 @@
  * This file defines macros to deal with 8-bit Unicode (UTF-8) code units (bytes) and strings.
  *
  * For more information see utf.h and the ICU User Guide Strings chapter
- * (http://userguide.icu-project.org/strings).
+ * (https://unicode-org.github.io/icu/userguide/strings).
  *
  * <em>Usage:</em>
  * ICU coding guidelines for if() statements should be followed when using these macros.
diff --git a/icu4c/source/common/unicode/uvernum.h b/icu4c/source/common/unicode/uvernum.h
index b974b3a..a4cbb9e 100644
--- a/icu4c/source/common/unicode/uvernum.h
+++ b/icu4c/source/common/unicode/uvernum.h
@@ -148,7 +148,7 @@
  * Until ICU 4.8, this was the combination of the single-digit major and minor ICU version numbers
  * into one string without dots ("48").
  * Since ICU 49, it is the double-digit major ICU version number.
- * See http://userguide.icu-project.org/design#TOC-Version-Numbers-in-ICU
+ * See https://unicode-org.github.io/icu/userguide/design#version-numbers-in-icu
  *
  * @stable ICU 2.6
  */
diff --git a/icu4c/source/config/icu-config-bottom b/icu4c/source/config/icu-config-bottom
index ddba5b3..b0e55af 100644
--- a/icu4c/source/config/icu-config-bottom
+++ b/icu4c/source/config/icu-config-bottom
@@ -98,7 +98,7 @@
     echo "Copyright (c) 2002-2013, International Business Machines Corporation and others. All Rights Reserved."
     echo
     echo "NOTE: Please consider using the pkg-config (.pc) files instead of icu-config."
-    echo " See: <http://userguide.icu-project.org/howtouseicu#TOC-pkg-config> "
+    echo " See: <https://unicode-org.github.io/icu/userguide/howtouseicu> "
 }
 
 ## Check the sanity of current variables
diff --git a/icu4c/source/configure b/icu4c/source/configure
index dac025a..274dce6 100755
--- a/icu4c/source/configure
+++ b/icu4c/source/configure
@@ -1477,7 +1477,7 @@
         library  shared library (.dll/.so/etc.)
         static   static library (.a/.lib/etc.)
         auto     build shared if possible (default)
-           See http://userguide.icu-project.org/icudata for more info.
+           See https://unicode-org.github.io/icu/userguide/icudata for more info.
   --with-library-suffix=suffix    tag a suffix to the library names default=
 
 Some influential environment variables:
diff --git a/icu4c/source/configure.ac b/icu4c/source/configure.ac
index 531dee1..1796ca0 100644
--- a/icu4c/source/configure.ac
+++ b/icu4c/source/configure.ac
@@ -1152,7 +1152,7 @@
         library  shared library (.dll/.so/etc.)
         static   static library (.a/.lib/etc.)
         auto     build shared if possible (default)
-           See http://userguide.icu-project.org/icudata for more info.],
+           See https://unicode-org.github.io/icu/userguide/icudata for more info.],
 	[case "${withval}" in
                 files|archive|library) datapackaging=$withval ;;
 		auto) datapackaging=$withval ;;
diff --git a/icu4c/source/data/mappings/gb18030.ucm b/icu4c/source/data/mappings/gb18030.ucm
index 8f5eff6..62b57a9 100644
--- a/icu4c/source/data/mappings/gb18030.ucm
+++ b/icu4c/source/data/mappings/gb18030.ucm
@@ -16,7 +16,7 @@
 # Note that the entire block for the supplementary Unicode planes is
 # marked unassigned because they are handled algorithmically.
 # Similarly, some of the BMP mappings are marked as unassigned for the same reason.
-# See http://userguide.icu-project.org/conversion/data#TOC-State-table-syntax-in-.ucm-files
+# See https://unicode-org.github.io/icu/userguide/conversion/data#state-table-syntax-in-ucm-files
 
 # States 0..2:
 # Mostly assigned sequences, with branches in the lead bytes
diff --git a/icu4c/source/i18n/format.cpp b/icu4c/source/i18n/format.cpp
index e5abbe9..a010def 100644
--- a/icu4c/source/i18n/format.cpp
+++ b/icu4c/source/i18n/format.cpp
@@ -26,7 +26,7 @@
 #include "unicode/utypes.h"
 
 #ifndef U_I18N_IMPLEMENTATION
-#error U_I18N_IMPLEMENTATION not set - must be set for all ICU source files in i18n/ - see http://userguide.icu-project.org/howtouseicu
+#error U_I18N_IMPLEMENTATION not set - must be set for all ICU source files in i18n/ - see https://unicode-org.github.io/icu/userguide/howtouseicu
 #endif
 
 /*
diff --git a/icu4c/source/i18n/unicode/coll.h b/icu4c/source/i18n/unicode/coll.h
index e698531..c750711 100644
--- a/icu4c/source/i18n/unicode/coll.h
+++ b/icu4c/source/i18n/unicode/coll.h
@@ -304,7 +304,7 @@
      * Starting with ICU 54, collation attributes can be specified via locale keywords as well,
      * in the old locale extension syntax ("el@colCaseFirst=upper")
      * or in language tag syntax ("el-u-kf-upper").
-     * See <a href="http://userguide.icu-project.org/collation/api">User Guide: Collation API</a>.
+     * See <a href="https://unicode-org.github.io/icu/userguide/collation/api">User Guide: Collation API</a>.
      *
      * The UErrorCode& err parameter is used to return status information to the user.
      * To check whether the construction succeeded or not, you should check
@@ -788,7 +788,7 @@
      * applications who wish to cache collators, or otherwise reuse
      * collators when possible.  The functional equivalent may change
      * over time.  For more information, please see the <a
-     * href="http://userguide.icu-project.org/locale#TOC-Locales-and-Services">
+     * href="https://unicode-org.github.io/icu/userguide/locale#locales-and-services">
      * Locales and Services</a> section of the ICU User Guide.
      * @param keyword a particular keyword as enumerated by
      * ucol_getKeywords.
@@ -1139,7 +1139,7 @@
      *  This string will be normalized.
      *  The structure and the syntax of the string is defined in the "Naming collators"
      *  section of the users guide:
-     *  http://userguide.icu-project.org/collation/concepts#TOC-Collator-naming-scheme
+     *  https://unicode-org.github.io/icu/userguide/collation/concepts#collator-naming-scheme
      *  This function supports preflighting.
      *
      *  This is internal, and intended to be used with delegate converters.
diff --git a/icu4c/source/i18n/unicode/msgfmt.h b/icu4c/source/i18n/unicode/msgfmt.h
index 5f19d3e..2d9bc8f 100644
--- a/icu4c/source/i18n/unicode/msgfmt.h
+++ b/icu4c/source/i18n/unicode/msgfmt.h
@@ -255,7 +255,7 @@
  * or preformatted values, but not pattern strings or custom format objects.</p>
  *
  * <p>For more details, see the
- * <a href="http://userguide.icu-project.org/formatparse/messages">ICU User Guide</a>.</p>
+ * <a href="https://unicode-org.github.io/icu/userguide/format_parse/messages">ICU User Guide</a>.</p>
  *
  * <h4>Usage Information</h4>
  *
diff --git a/icu4c/source/i18n/unicode/numberformatter.h b/icu4c/source/i18n/unicode/numberformatter.h
index b2e8945..5316d9a 100644
--- a/icu4c/source/i18n/unicode/numberformatter.h
+++ b/icu4c/source/i18n/unicode/numberformatter.h
@@ -1771,7 +1771,7 @@
      *
      * The default is HALF_EVEN. For more information on rounding mode, see the ICU userguide here:
      *
-     * http://userguide.icu-project.org/formatparse/numbers/rounding-modes
+     * https://unicode-org.github.io/icu/userguide/format_parse/numbers/rounding-modes
      *
      * @param roundingMode The rounding mode to use.
      * @return The fluent chain.
diff --git a/icu4c/source/i18n/unicode/numfmt.h b/icu4c/source/i18n/unicode/numfmt.h
index 9fcc689..61fb59d 100644
--- a/icu4c/source/i18n/unicode/numfmt.h
+++ b/icu4c/source/i18n/unicode/numfmt.h
@@ -179,7 +179,7 @@
      *
      * <p>
      * For more detail on rounding modes, see:
-     * http://userguide.icu-project.org/formatparse/numbers/rounding-modes
+     * https://unicode-org.github.io/icu/userguide/format_parse/numbers/rounding-modes
      *
      * @stable ICU 2.4
      */
diff --git a/icu4c/source/i18n/unicode/smpdtfmt.h b/icu4c/source/i18n/unicode/smpdtfmt.h
index 54512f1..3296c6b 100644
--- a/icu4c/source/i18n/unicode/smpdtfmt.h
+++ b/icu4c/source/i18n/unicode/smpdtfmt.h
@@ -81,7 +81,7 @@
  * the date and time formatting algorithm and pattern letters defined by
  * <a href="http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table">UTS#35
  * Unicode Locale Data Markup Language (LDML)</a> and further documented for ICU in the
- * <a href="https://sites.google.com/site/icuprojectuserguide/formatparse/datetime?pli=1#TOC-Date-Field-Symbol-Table">ICU
+ * <a href="https://unicode-org.github.io/icu/userguide/format_parse/datetime/#date-field-symbol-table">ICU
  * User Guide</a>. The following pattern letters are currently available (note that the actual
  * values depend on CLDR and may change from the examples shown here):</p>
  *
diff --git a/icu4c/source/i18n/unicode/tblcoll.h b/icu4c/source/i18n/unicode/tblcoll.h
index acaaccd..a004dd6 100644
--- a/icu4c/source/i18n/unicode/tblcoll.h
+++ b/icu4c/source/i18n/unicode/tblcoll.h
@@ -99,14 +99,14 @@
  * table-based collation.
  * <p>
  * For more information about the collation service see
- * <a href="http://userguide.icu-project.org/collation">the User Guide</a>.
+ * <a href="https://unicode-org.github.io/icu/userguide/collation">the User Guide</a>.
  * <p>
  * Collation service provides correct sorting orders for most locales supported in ICU.
  * If specific data for a locale is not available, the orders eventually falls back
  * to the <a href="http://www.unicode.org/reports/tr35/tr35-collation.html#Root_Collation">CLDR root sort order</a>.
  * <p>
  * Sort ordering may be customized by providing your own set of rules. For more on
- * this subject see the <a href="http://userguide.icu-project.org/collation/customization">
+ * this subject see the <a href="https://unicode-org.github.io/icu/userguide/collation/customization">
  * Collation Customization</a> section of the User Guide.
  * <p>
  * Note, RuleBasedCollator is not to be subclassed.
@@ -495,7 +495,7 @@
      * just the tailoring.
      *
      * getRules(void) should normally be used instead.
-     * See http://userguide.icu-project.org/collation/customization#TOC-Building-on-Existing-Locales
+     * See https://unicode-org.github.io/icu/userguide/collation/customization#building-on-existing-locales
      * @param delta one of UCOL_TAILORING_ONLY, UCOL_FULL_RULES.
      * @param buffer UnicodeString to store the result rules
      * @stable ICU 2.2
@@ -702,7 +702,7 @@
      *  This string will be normalized.
      *  The structure and the syntax of the string is defined in the "Naming collators"
      *  section of the users guide:
-     *  http://userguide.icu-project.org/collation/concepts#TOC-Collator-naming-scheme
+     *  https://unicode-org.github.io/icu/userguide/collation/concepts#collator-naming-scheme
      *  This function supports preflighting.
      *
      *  This is internal, and intended to be used with delegate converters.
diff --git a/icu4c/source/i18n/unicode/timezone.h b/icu4c/source/i18n/unicode/timezone.h
index 155b095..f718be0 100644
--- a/icu4c/source/i18n/unicode/timezone.h
+++ b/icu4c/source/i18n/unicode/timezone.h
@@ -403,7 +403,7 @@
     *
     * <p>This implementation utilizes <a href="http://unicode.org/cldr/charts/supplemental/zone_tzid.html">
     * Zone-Tzid mapping data</a>. The mapping data is updated time to time. To get the latest changes,
-    * please read the ICU user guide section <a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">
+    * please read the ICU user guide section <a href="https://unicode-org.github.io/icu/userguide/datetime/timezone#updating-the-time-zone-data">
     * Updating the Time Zone Data</a>.
     *
     * @param id        A system time zone ID.
@@ -431,7 +431,7 @@
     *
     * <p>This implementation utilizes <a href="http://unicode.org/cldr/charts/supplemental/zone_tzid.html">
     * Zone-Tzid mapping data</a>. The mapping data is updated time to time. To get the latest changes,
-    * please read the ICU user guide section <a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">
+    * please read the ICU user guide section <a href="https://unicode-org.github.io/icu/userguide/datetime/timezone#updating-the-time-zone-data">
     * Updating the Time Zone Data</a>.
     *
     * @param winid     A Windows time zone ID.
diff --git a/icu4c/source/i18n/unicode/ucal.h b/icu4c/source/i18n/unicode/ucal.h
index 40b9393..89b1604 100644
--- a/icu4c/source/i18n/unicode/ucal.h
+++ b/icu4c/source/i18n/unicode/ucal.h
@@ -1568,7 +1568,7 @@
 *
 * <p>This implementation utilizes <a href="http://unicode.org/cldr/charts/supplemental/zone_tzid.html">
 * Zone-Tzid mapping data</a>. The mapping data is updated time to time. To get the latest changes,
-* please read the ICU user guide section <a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">
+* please read the ICU user guide section <a href="https://unicode-org.github.io/icu/userguide/datetime/timezone#updating-the-time-zone-data">
 * Updating the Time Zone Data</a>.
 *
 * @param id            A system time zone ID.
@@ -1599,7 +1599,7 @@
 *
 * <p>This implementation utilizes <a href="http://unicode.org/cldr/charts/supplemental/zone_tzid.html">
 * Zone-Tzid mapping data</a>. The mapping data is updated time to time. To get the latest changes,
-* please read the ICU user guide section <a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">
+* please read the ICU user guide section <a href="https://unicode-org.github.io/icu/userguide/datetime/timezone#updating-the-time-zone-data">
 * Updating the Time Zone Data</a>.
 *
 * @param winid         A Windows time zone ID.
diff --git a/icu4c/source/i18n/unicode/ucol.h b/icu4c/source/i18n/unicode/ucol.h
index 7e78d26..a01d0ae 100644
--- a/icu4c/source/i18n/unicode/ucol.h
+++ b/icu4c/source/i18n/unicode/ucol.h
@@ -35,14 +35,14 @@
  * searching and sorting routines for natural language text.
  * <p>
  * For more information about the collation service see 
- * <a href="http://userguide.icu-project.org/collation">the User Guide</a>.
+ * <a href="https://unicode-org.github.io/icu/userguide/collation">the User Guide</a>.
  * <p>
  * Collation service provides correct sorting orders for most locales supported in ICU. 
  * If specific data for a locale is not available, the orders eventually falls back
  * to the <a href="http://www.unicode.org/reports/tr35/tr35-collation.html#Root_Collation">CLDR root sort order</a>. 
  * <p>
  * Sort ordering may be customized by providing your own set of rules. For more on
- * this subject see the <a href="http://userguide.icu-project.org/collation/customization">
+ * this subject see the <a href="https://unicode-org.github.io/icu/userguide/collation/customization">
  * Collation Customization</a> section of the User Guide.
  * <p>
  * @see         UCollationResult
@@ -370,7 +370,7 @@
    * Retrieves the "UCA rules" concatenated with the tailoring rules.
    * The "UCA rules" are an <i>approximation</i> of the root collator's sort order.
    * They are almost never used or useful at runtime and can be removed from the data.
-   * See http://userguide.icu-project.org/collation/customization#TOC-Building-on-Existing-Locales
+   * See https://unicode-org.github.io/icu/userguide/collation/customization#building-on-existing-locales
    * @stable ICU 2.0
    */
   UCOL_FULL_RULES 
@@ -384,7 +384,7 @@
  * Starting with ICU 54, collation attributes can be specified via locale keywords as well,
  * in the old locale extension syntax ("el@colCaseFirst=upper")
  * or in language tag syntax ("el-u-kf-upper").
- * See <a href="http://userguide.icu-project.org/collation/api">User Guide: Collation API</a>.
+ * See <a href="https://unicode-org.github.io/icu/userguide/collation/api">User Guide: Collation API</a>.
  *
  * The UCollator pointer is used in all the calls to the Collation 
  * service. After finished, collator must be disposed of by calling
@@ -442,7 +442,7 @@
  * Open a collator defined by a short form string.
  * The structure and the syntax of the string is defined in the "Naming collators"
  * section of the users guide: 
- * http://userguide.icu-project.org/collation/concepts#TOC-Collator-naming-scheme
+ * https://unicode-org.github.io/icu/userguide/collation/concepts#collator-naming-scheme
  * Attributes are overriden by the subsequent attributes. So, for "S2_S3", final
  * strength will be 3. 3066bis locale overrides individual locale parts.
  * The call to this function is equivalent to a call to ucol_open, followed by a 
@@ -904,7 +904,7 @@
  * applications who wish to cache collators, or otherwise reuse
  * collators when possible. The functional equivalent may change
  * over time. For more information, please see the <a
- * href="http://userguide.icu-project.org/locale#TOC-Locales-and-Services">
+ * href="https://unicode-org.github.io/icu/userguide/locale#locales-and-services">
  * Locales and Services</a> section of the ICU User Guide.
  * @param result fillin for the functionally equivalent result locale
  * @param resultCapacity capacity of the fillin buffer
@@ -945,7 +945,7 @@
  *  This string will be normalized.
  *  The structure and the syntax of the string is defined in the "Naming collators"
  *  section of the users guide: 
- *  http://userguide.icu-project.org/collation/concepts#TOC-Collator-naming-scheme
+ *  https://unicode-org.github.io/icu/userguide/collation/concepts#collator-naming-scheme
  *  This API supports preflighting.
  *  @param coll a collator
  *  @param locale a locale that will appear as a collators locale in the resulting
@@ -1158,7 +1158,7 @@
  * Using strings with U+FFFE may yield shorter sort keys.
  *
  * For details about Sort Key Features see
- * http://userguide.icu-project.org/collation/api#TOC-Sort-Key-Features
+ * https://unicode-org.github.io/icu/userguide/collation/api#sort-key-features
  *
  * It is possible to merge multiple sort keys by consecutively merging
  * another one with the intermediate result.
@@ -1354,7 +1354,7 @@
  * to store rules, will store up to available space.
  *
  * ucol_getRules() should normally be used instead.
- * See http://userguide.icu-project.org/collation/customization#TOC-Building-on-Existing-Locales
+ * See https://unicode-org.github.io/icu/userguide/collation/customization#building-on-existing-locales
  * @param coll collator to get the rules from
  * @param delta one of UCOL_TAILORING_ONLY, UCOL_FULL_RULES. 
  * @param buffer buffer to store the result in. If NULL, you'll get no rules.
diff --git a/icu4c/source/i18n/unicode/udat.h b/icu4c/source/i18n/unicode/udat.h
index df4259e..ec25eba 100644
--- a/icu4c/source/i18n/unicode/udat.h
+++ b/icu4c/source/i18n/unicode/udat.h
@@ -146,7 +146,7 @@
  * the date and time formatting algorithm and pattern letters defined by
  * <a href="http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table">UTS#35
  * Unicode Locale Data Markup Language (LDML)</a> and further documented for ICU in the
- * <a href="https://sites.google.com/site/icuprojectuserguide/formatparse/datetime?pli=1#TOC-Date-Field-Symbol-Table">ICU
+ * <a href="https://unicode-org.github.io/icu/userguide/format_parse/datetime#date-field-symbol-table">ICU
  * User Guide</a>.</p>
  */
 
diff --git a/icu4c/source/i18n/unicode/unum.h b/icu4c/source/i18n/unicode/unum.h
index 83609a7..68207a9 100644
--- a/icu4c/source/i18n/unicode/unum.h
+++ b/icu4c/source/i18n/unicode/unum.h
@@ -275,7 +275,7 @@
  *
  * <p>
  * For more detail on rounding modes, see:
- * http://userguide.icu-project.org/formatparse/numbers/rounding-modes
+ * https://unicode-org.github.io/icu/userguide/format_parse/numbers/rounding-modes
  *
  * @stable ICU 2.0
  */
diff --git a/icu4c/source/io/ucln_io.cpp b/icu4c/source/io/ucln_io.cpp
index 5cd367c..c1307b5 100644
--- a/icu4c/source/io/ucln_io.cpp
+++ b/icu4c/source/io/ucln_io.cpp
@@ -23,7 +23,7 @@
 #include "uassert.h"
 
 #ifndef U_IO_IMPLEMENTATION
-#error U_IO_IMPLEMENTATION not set - must be set for all ICU source files in io/ - see http://userguide.icu-project.org/howtouseicu
+#error U_IO_IMPLEMENTATION not set - must be set for all ICU source files in io/ - see https://unicode-org.github.io/icu/userguide/howtouseicu
 #endif
 
 
@@ -69,4 +69,3 @@
     ucln_registerAutomaticCleanup();
 #endif
 }
-
diff --git a/icu4c/source/layoutex/layout/ParagraphLayout.h b/icu4c/source/layoutex/layout/ParagraphLayout.h
index 1e0a5e7..ce3f7e5 100644
--- a/icu4c/source/layoutex/layout/ParagraphLayout.h
+++ b/icu4c/source/layoutex/layout/ParagraphLayout.h
@@ -46,7 +46,7 @@
  * You may use this class with the HarfBuzz icu-le-hb wrapper,
  *  see http://www.freedesktop.org/wiki/Software/HarfBuzz/
  *
- *  See http://userguide.icu-project.org/layoutengine for special build instructions.
+ *  See https://unicode-org.github.io/icu/userguide/layoutengine for special build instructions.
  */
 class U_LAYOUTEX_API ParagraphLayout : public UObject
 {
diff --git a/icu4c/source/tools/gennorm2/gennorm2.cpp b/icu4c/source/tools/gennorm2/gennorm2.cpp
index bce5336..723e912 100644
--- a/icu4c/source/tools/gennorm2/gennorm2.cpp
+++ b/icu4c/source/tools/gennorm2/gennorm2.cpp
@@ -104,7 +104,7 @@
             "Reads the infiles with normalization data and\n"
             "creates a binary file, or a C source file (--csource), with the data,\n"
             "or writes a data file with the combined data (--combined).\n"
-            "See http://userguide.icu-project.org/transforms/normalization#TOC-Data-File-Syntax\n"
+            "See https://unicode-org.github.io/icu/userguide/transforms/normalization#data-file-syntax\n"
             "\n"
             "Alternate usage: %s [-options] a.txt b.txt minus p.txt q.txt -o outputfilename\n"
             "\n"
diff --git a/icu4c/source/tools/toolutil/toolutil.cpp b/icu4c/source/tools/toolutil/toolutil.cpp
index 95543c6..9a93528 100644
--- a/icu4c/source/tools/toolutil/toolutil.cpp
+++ b/icu4c/source/tools/toolutil/toolutil.cpp
@@ -33,7 +33,7 @@
 #include "unicode/utypes.h"
 
 #ifndef U_TOOLUTIL_IMPLEMENTATION
-#error U_TOOLUTIL_IMPLEMENTATION not set - must be set for all ICU source files in common/ - see http://userguide.icu-project.org/howtouseicu
+#error U_TOOLUTIL_IMPLEMENTATION not set - must be set for all ICU source files in common/ - see https://unicode-org.github.io/icu/userguide/howtouseicu
 #endif
 
 #if U_PLATFORM_USES_ONLY_WIN32_API
diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationElementIterator.java b/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationElementIterator.java
index 56afd7f..021e0c6 100644
--- a/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationElementIterator.java
+++ b/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationElementIterator.java
@@ -55,7 +55,7 @@
  * can not be compared simply by using basic arithmetic operators,
  * e.g. &lt;, == or &gt;, further processing has to be done. Details
  * can be found in the ICU
- * <a href="http://userguide.icu-project.org/collation/architecture">
+ * <a href="https://unicode-org.github.io/icu/userguide/collation/architecture">
  * User Guide</a>. An example of using the CollationElementIterator
  * for collation ordering comparison is the class
  * {@link com.ibm.icu.text.StringSearch}.
diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationKey.java b/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationKey.java
index 21304c4..203706a 100644
--- a/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationKey.java
+++ b/icu4j/main/classes/collate/src/com/ibm/icu/text/CollationKey.java
@@ -491,7 +491,7 @@
      * Using strings with U+FFFE may yield shorter sort keys.
      *
      * <p>For details about Sort Key Features see
-     * http://userguide.icu-project.org/collation/api#TOC-Sort-Key-Features
+     * https://unicode-org.github.io/icu/userguide/collation/api#sort-key-features
      *
      * <p>It is possible to merge multiple sort keys by consecutively merging
      * another one with the intermediate result.
diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java b/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java
index 789d77b..47d4994 100644
--- a/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java
+++ b/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java
@@ -64,7 +64,7 @@
 *     difference between large and small Kana. A tertiary difference is ignored
 *     when there is a primary or secondary difference anywhere in the strings.
 * <li>QUATERNARY strength: When punctuation is ignored
-*     (see <a href="http://userguide.icu-project.org/collation/concepts#TOC-Ignoring-Punctuation">
+*     (see <a href="https://unicode-org.github.io/icu/userguide/collation/concepts#ignoring-punctuation">
 *     Ignoring Punctuations in the User Guide</a>) at PRIMARY to TERTIARY
 *     strength, an additional strength level can
 *     be used to distinguish words with and without punctuation (for example,
@@ -95,7 +95,7 @@
 * a comparison or before getting a CollationKey.
 *
 * <p>For more information about the collation service see the
-* <a href="http://userguide.icu-project.org/collation">User Guide</a>.
+* <a href="https://unicode-org.github.io/icu/userguide/collation">User Guide</a>.
 *
 * <p>Examples of use
 * <pre>
@@ -172,7 +172,7 @@
     /**
      * {@icu} Fourth level collator strength value.
      * When punctuation is ignored
-     * (see <a href="http://userguide.icu-project.org/collation/concepts#TOC-Ignoring-Punctuation">
+     * (see <a href="https://unicode-org.github.io/icu/userguide/collation/concepts#ignoring-punctuation">
      * Ignoring Punctuation in the User Guide</a>) at PRIMARY to TERTIARY
      * strength, an additional strength level can
      * be used to distinguish words with and without punctuation.
@@ -807,7 +807,7 @@
      * Starting with ICU 54, collation attributes can be specified via locale keywords as well,
      * in the old locale extension syntax ("el@colCaseFirst=upper")
      * or in language tag syntax ("el-u-kf-upper").
-     * See <a href="http://userguide.icu-project.org/collation/api">User Guide: Collation API</a>.
+     * See <a href="https://unicode-org.github.io/icu/userguide/collation/api">User Guide: Collation API</a>.
      *
      * @param locale the desired locale.
      * @return Collator for the desired locale if it is created successfully.
@@ -841,7 +841,7 @@
      * Starting with ICU 54, collation attributes can be specified via locale keywords as well,
      * in the old locale extension syntax ("el@colCaseFirst=upper", only with {@link ULocale})
      * or in language tag syntax ("el-u-kf-upper").
-     * See <a href="http://userguide.icu-project.org/collation/api">User Guide: Collation API</a>.
+     * See <a href="https://unicode-org.github.io/icu/userguide/collation/api">User Guide: Collation API</a>.
      *
      * @param locale the desired locale.
      * @return Collator for the desired locale if it is created successfully.
@@ -1056,7 +1056,7 @@
      * applications who wish to cache collators, or otherwise reuse
      * collators when possible.  The functional equivalent may change
      * over time.  For more information, please see the <a
-     * href="http://userguide.icu-project.org/locale#TOC-Locales-and-Services">
+     * href="https://unicode-org.github.io/icu/userguide/locale#locales-and-services">
      * Locales and Services</a> section of the ICU User Guide.
      * @param keyword a particular keyword as enumerated by
      * getKeywords.
diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/text/RuleBasedCollator.java b/icu4j/main/classes/collate/src/com/ibm/icu/text/RuleBasedCollator.java
index a2b5651..a8c0033 100644
--- a/icu4j/main/classes/collate/src/com/ibm/icu/text/RuleBasedCollator.java
+++ b/icu4j/main/classes/collate/src/com/ibm/icu/text/RuleBasedCollator.java
@@ -50,7 +50,7 @@
  * <p>A Collator is thread-safe only when frozen. See {{@link #isFrozen()} and {@link com.ibm.icu.util.Freezable}.
  *
  * <p>
- * Users are strongly encouraged to read the <a href="http://userguide.icu-project.org/collation">User
+ * Users are strongly encouraged to read the <a href="https://unicode-org.github.io/icu/userguide/collation">User
  * Guide</a> for more information about the collation service before using this class.
  *
  * <p>
@@ -67,8 +67,8 @@
  *
  * <p>
  * For information about the collation rule syntax and details about customization, please refer to the <a
- * href="http://userguide.icu-project.org/collation/customization">Collation customization</a> section of the
- * User Guide.
+ * href="https://unicode-org.github.io/icu/userguide/collation/customization">Collation customization</a>
+ * section of the User Guide.
  *
  * <p>
  * <strong>Note</strong> that there are some differences between the Collation rule syntax used in Java and ICU4J:
@@ -193,7 +193,7 @@
      * The collator will be based on the CLDR root collation, with the
      * attributes and re-ordering of the characters specified in the argument rules.
      * <p>
-     * See the User Guide's section on <a href="http://userguide.icu-project.org/collation/customization">
+     * See the User Guide's section on <a href="https://unicode-org.github.io/icu/userguide/collation/customization">
      * Collation Customization</a> for details on the rule syntax.
      *
      * @param rules
@@ -570,7 +570,7 @@
     /**
      * Sets the mode for the direction of SECONDARY weights to be used in French collation. The default value is false,
      * which treats SECONDARY weights in the order they appear. If set to true, the SECONDARY weights will be sorted
-     * backwards. See the section on <a href="http://userguide.icu-project.org/collation/architecture">
+     * backwards. See the section on <a href="https://unicode-org.github.io/icu/userguide/collation/architecture">
      * French collation</a> for more information.
      *
      * @param flag
@@ -619,7 +619,7 @@
      * first mode. A simple way to ignore accent differences in a string is to set the strength to PRIMARY and enable
      * case level.
      * <p>
-     * See the section on <a href="http://userguide.icu-project.org/collation/architecture">case
+     * See the section on <a href="https://unicode-org.github.io/icu/userguide/collation/architecture">case
      * level</a> for more information.
      *
      * @param flag
@@ -963,7 +963,7 @@
      *
      * <p>The root collation rules are an <i>approximation</i> of the root collator's sort order.
      * They are almost never used or useful at runtime and can be removed from the data.
-     * See <a href="http://userguide.icu-project.org/collation/customization#TOC-Building-on-Existing-Locales">User Guide:
+     * See <a href="https://unicode-org.github.io/icu/userguide/collation/customization#building-on-existing-locales">User Guide:
      * Collation Customization, Building on Existing Locales</a>
      *
      * <p>{@link #getRules()} should normally be used instead.
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/number/NumberFormatterSettings.java b/icu4j/main/classes/core/src/com/ibm/icu/number/NumberFormatterSettings.java
index 5f6c365..a5484cd 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/number/NumberFormatterSettings.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/number/NumberFormatterSettings.java
@@ -225,7 +225,7 @@
      *
      * The default is HALF_EVEN. For more information on rounding mode, see the ICU userguide here:
      *
-     * http://userguide.icu-project.org/formatparse/numbers/rounding-modes
+     * https://unicode-org.github.io/icu/userguide/format_parse/numbers/rounding-modes
      *
      * @param roundingMode
      *            The rounding mode to use.
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java b/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
index 24a8d87..e80c913 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/DecimalFormat.java
@@ -131,8 +131,8 @@
  * <p>It is also possible to specify the <em>rounding mode</em> to use. The default rounding mode is
  * "half even", which rounds numbers to their closest increment, with ties broken in favor of
  * trailing numbers being even. For more information, see {@link #setRoundingMode} and <a
- * href="http://userguide.icu-project.org/formatparse/numbers/rounding-modes">the ICU User
- * Guide</a>.
+ * href="https://unicode-org.github.io/icu/userguide/format_parse/numbers/rounding-modes">the ICU
+ * User Guide</a>.
  *
  * <h3>Pattern Strings</h3>
  *
@@ -1272,8 +1272,8 @@
    * number, and rounds to the closest even number if at the midpoint.
    *
    * <p>For more detail on rounding modes, see <a
-   * href="http://userguide.icu-project.org/formatparse/numbers/rounding-modes">the ICU User
-   * Guide</a>.
+   * href="https://unicode-org.github.io/icu/userguide/format_parse/numbers/rounding-modes">the ICU
+   * User Guide</a>.
    *
    * <p>For backwards compatibility, the rounding mode is specified as an int argument, which can be
    * from either the constants in {@link BigDecimal} or the ordinal value of {@link RoundingMode}.
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java b/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java
index aeb20ff..925576a 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java
@@ -280,7 +280,7 @@
  * or preformatted values, but not pattern strings or custom format objects.</p>
  *
  * <p>For more details, see the
- * <a href="http://userguide.icu-project.org/formatparse/messages">ICU User Guide</a>.</p>
+ * <a href="https://unicode-org.github.io/icu/userguide/format_parse/messages">ICU User Guide</a>.</p>
  *
  * <h4>Usage Information</h4>
  *
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/TimeZone.java b/icu4j/main/classes/core/src/com/ibm/icu/util/TimeZone.java
index 5300aab..5a46e22 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/TimeZone.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/TimeZone.java
@@ -1205,7 +1205,7 @@
      *
      * <p>This implementation utilizes <a href="http://unicode.org/cldr/charts/supplemental/zone_tzid.html">
      * Zone-Tzid mapping data</a>. The mapping data is updated time to time. To get the latest changes,
-     * please read the ICU user guide section <a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">
+     * please read the ICU user guide section <a href="https://unicode-org.github.io/icu/userguide/datetime/timezone#updating-the-time-zone-data">
      * Updating the Time Zone Data</a>.
      *
      * @param id A system time zone ID
@@ -1265,7 +1265,7 @@
      *
      * <p>This implementation utilizes <a href="http://unicode.org/cldr/charts/supplemental/zone_tzid.html">
      * Zone-Tzid mapping data</a>. The mapping data is updated time to time. To get the latest changes,
-     * please read the ICU user guide section <a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">
+     * please read the ICU user guide section <a href="https://unicode-org.github.io/icu/userguide/datetime/timezone#updating-the-time-zone-data">
      * Updating the Time Zone Data</a>.
      *
      * @param winid A Windows time zone ID
diff --git a/icu4j/main/classes/localespi/src/com/ibm/icu/impl/javaspi/package.html b/icu4j/main/classes/localespi/src/com/ibm/icu/impl/javaspi/package.html
index 0a45d75..6e74908 100644
--- a/icu4j/main/classes/localespi/src/com/ibm/icu/impl/javaspi/package.html
+++ b/icu4j/main/classes/localespi/src/com/ibm/icu/impl/javaspi/package.html
@@ -10,7 +10,7 @@
 <p>This package includes Java Locale Service Provider implementation.
 There are no public ICU4J consumer APIs provided in this package.
 See the ICU user guide section
-<a href="http://userguide.icu-project.org/icu4j-locale-service-provider">ICU4J Locale Service Provider</a>
+<a href="https://unicode-org.github.io/icu/userguide/icu4j-locale-service-provider">ICU4J Locale Service Provider</a>
 for the details.
 </p>
 </body>
diff --git a/icu4j/readme.html b/icu4j/readme.html
index 1e27c31..8144ea8 100644
--- a/icu4j/readme.html
+++ b/icu4j/readme.html
@@ -76,60 +76,60 @@
 </p>
 <ul>
   <li><a
- href="http://userguide.icu-project.org/collation"><b>Collation</b></a>
+ href="https://unicode-org.github.io/icu/userguide/collation"><b>Collation</b></a>
 &#8211; rule-based, up-to-date Unicode Collation Algorithm (UCA) sorting order<br>
 &nbsp;&nbsp;&nbsp;&nbsp;For fast multilingual string comparison; faster
 and more complete than
 the J2SE implementation</li>
-  <li><a href="http://userguide.icu-project.org/conversion/detection"><b>Charset
+  <li><a href="https://unicode-org.github.io/icu/userguide/conversion/detection"><b>Charset
 Detection</b></a> &#8211; Recognition of various single and multibyte charsets<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Useful for recognizing untagged text data</li>
   <li><a
- href="http://userguide.icu-project.org/strings/unicodeset"><b>UnicodeSet</b></a>
+ href="https://unicode-org.github.io/icu/userguide/strings/unicodeset"><b>UnicodeSet</b></a>
 &#8211; standard set operations optimized for sets of Unicode characters<br>
 &nbsp;&nbsp;&nbsp;&nbsp;UnicodeSets can be built from string patterns
 using any Unicode properties.</li>
-  <li><a href="http://userguide.icu-project.org/transforms"><b>Transforms</b></a>
+  <li><a href="https://unicode-org.github.io/icu/userguide/transforms"><b>Transforms</b></a>
 &#8211; a flexible mechanism for Unicode text conversions<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Including Full/Halfwidth conversions,
 Normalization, Case conversions, Hex
 conversions, and transliterations between scripts (50+ pairs)</li>
   <li><a
- href="http://userguide.icu-project.org/transforms/normalization"><b>Unicode
+ href="https://unicode-org.github.io/icu/userguide/transforms/normalization"><b>Unicode
 Normalization</b></a> &#8211; NFC, NFD, NFKD, NFKC<br>
 &nbsp;&nbsp;&nbsp;&nbsp;For canonical text representations, needed for
 XML and the net</li>
   <li><a
- href="http://userguide.icu-project.org/datetime/calendar"><b>International
+ href="https://unicode-org.github.io/icu/userguide/datetime/calendar"><b>International
 Calendars</b></a> &#8211; Arabic, Buddhist, Chinese, Hebrew, Japanese, Ethiopic, Islamic, Coptic and other calendars<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Required for correct presentation of dates in
 certain countries</li>
   <li><a
- href="http://userguide.icu-project.org/formatparse/datetime"><b>Date
+ href="https://unicode-org.github.io/icu/userguide/format_parse/datetime"><b>Date
 Format
 Enhancements</b></a> &#8211; Date/time pattern generator, Relative date formatting, etc.<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Enhancements to the normal Java date
 formatting.</li>
   <li><a
- href="http://userguide.icu-project.org/formatparse/numbers"><b>Number
+ href="https://unicode-org.github.io/icu/userguide/format_parse/numbers"><b>Number
 Format
 Enhancements</b></a> &#8211; Scientific Notation, Spelled-out, Compact decimal format, etc.<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Enhancements to the normal Java number
 formatting. The spell-out format is
 used for checks and similar documents</li>
   <li><a
- href="http://userguide.icu-project.org/boundaryanalysis"><b>Enhanced
+ href="https://unicode-org.github.io/icu/userguide/boundaryanalysis"><b>Enhanced
 Word-Break Detection</b></a> &#8211; Rule-based, supports Thai, Khmer, Chinese, etc.<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Required for correct support of Thai</li>
   <li><a
- href="http://userguide.icu-project.org/conversion/compression"><b>Unicode
+ href="https://unicode-org.github.io/icu/userguide/conversion/compression"><b>Unicode
 Text
 Compression</b></a> &#8211; Standard compression of Unicode text<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Suitable for large numbers of small fields,
 where LZW and similar schemes
 do not apply</li>
   <li><a
- href="http://userguide.icu-project.org/conversion"><b>Charset Conversion</b></a> &#8211; Conversion to and from different charsets.<br>
+ href="https://unicode-org.github.io/icu/userguide/conversion"><b>Charset Conversion</b></a> &#8211; Conversion to and from different charsets.<br>
 &nbsp;&nbsp;&nbsp;&nbsp;Plugs into Java CharsetProvider Service Provider Interface (SPI)</li>
 
 </ul>
@@ -440,7 +440,7 @@
 </table>
 
 <h2 class="doc"><a name="API"></a>Where to get Documentation</h2>
-<p>The <a href="http://userguide.icu-project.org/">ICU user's
+<p>The <a href="https://unicode-org.github.io/icu/userguide/">ICU user's
 guide</a> contains lots of general information about ICU, in its C,
 C++, and Java incarnations.</p>
 <p>The complete API documentation for ICU4J (javadoc) is available on
@@ -692,7 +692,7 @@
 how to configure Eclipse</a> to build and develop ICU4J on Eclipse IDE.</p>
 
 <p><b>Note:</b> To install and configure ICU4J Locale Service Provider, please refer the user guide
-page <a href="http://userguide.icu-project.org/icu4j-locale-service-provider">ICU4J Locale
+page <a href="https://unicode-org.github.io/icu/userguide/icu4j-locale-service-provider">ICU4J Locale
 Service Provider</a>.</p>
 
 <h2 class="doc"><a name="tryingout"></a>Trying Out ICU4J</h2>
@@ -891,7 +891,7 @@
 However, time zone data is frequently updated in response
 to changes made by local governments around the world.  If you need to update
 the time zone data, please refer the ICU user guide topic
-<a href="http://userguide.icu-project.org/datetime/timezone#TOC-Updating-the-Time-Zone-Data">Updating the Time Zone Data</a>.</p>
+<a href="https://unicode-org.github.io/icu/userguide/datetime/timezone#updating-the-time-zone-data">Updating the Time Zone Data</a>.</p>
 <p>You can optionally configure ICU4J date and time
 service classes to use underlying JDK TimeZone implementation (see the ICU4J API reference
 <a href="http://www.icu-project.org/apiref/icu4j/com/ibm/icu/util/TimeZone.html">TimeZone</a>