[wwwdocs] Add httpd redirects for texinfo trunk docs and for each release series
Checks
Commit Message
I've tested that the redirects work on my own httpd server, and have
verified that no new sphinx-generated docs match these patterns, and no
old texinfo docs fail to match them (except for cases like index.html
where a new file exists with the same name anyway so we don't need a
redirect).
For example, on gcc.gnu.org:
cd htdocs/onlinedocs/gcc-12.2.0
# All "missing" URLs are matched by these patterns:
for i in {gcc,cpp}/*.html ; do test -f ../$i || echo $i ; done | grep -E -v '^(gcc|cpp)/([[:upper:]].*|_00(5f|40).*|aarch64-feature-modifiers|c99-like-fast-enumeration-syntax|compatibility_005f.*|dashMF|eBPF-Options|fdollars-in-identifiers|lto-dump-Intro|(m68k|msp430|picoChip|x86|zSeries).*|trigraphs).*\.html$'
for i in gccint/*.html ; do test -f ../$i || echo $i ; done | grep -E -v '^gccint/([[:upper:]].*|(arm|define|input|poly|stack|window)_005f.*|compat-Testing|(epi|pro)logue-instruction-pattern|gcc-Directory|gcov-Testing|loop-iv|profopt-Testing|real-RTL-SSA-insns|shift-patterns|wi-arith.*)\.html$'
for i in cppinternals/*.html ; do test -f ../$i || echo $i ; done | grep -E -v '^cppinternals/([[:upper:]].*)\.html$'
# No still-valid URLs are matched:
for i in {gcc,cpp}/*.html ; do test -f ../$i && echo $i ; done | grep -E '^(gcc|cpp)/([[:upper:]].*|_00(5f|40).*|aarch64-feature-modifiers|c99-like-fast-enumeration-syntax|compatibility_005f.*|dashMF|eBPF-Options|fdollars-in-identifiers|lto-dump-Intro|(m68k|msp430|picoChip|x86|zSeries).*|trigraphs).*\.html$'
for i in gccint/*.html ; do test -f ../$i && echo $i ; done | grep -E '^gccint/([[:upper:]].*|(arm|define|input|poly|stack|window)_005f.*|compat-Testing|(epi|pro)logue-instruction-pattern|gcc-Directory|gcov-Testing|loop-iv|profopt-Testing|real-RTL-SSA-insns|shift-patterns|wi-arith.*)\.html$'
for i in cppinternals/*.html ; do test -f ../$i && echo $i ; done | grep -E '^cppinternals/([[:upper:]].*)\.html$'
I haven't added redirects for other sub-dirs such as gccgo, gfortran,
libgomp etc. so if somebody cares about those, they should deal with
them.
OK for wwwdocs?
-- >8 --
Add redirects from /onlinedocs/gcc-X to the latest gcc-X.Y.0 release
(which will need to be updated when a release is made).
Also add redirects from URLs for old trunk docs such as
https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
to the gcc-12 equivalent of that page.
---
htdocs/.htaccess | 14 ++++++++++++++
1 file changed, 14 insertions(+)
Comments
On 09/11/22 15:41 +0000, Jonathan Wakely wrote:
>I've tested that the redirects work on my own httpd server, and have
>verified that no new sphinx-generated docs match these patterns, and no
>old texinfo docs fail to match them (except for cases like index.html
>where a new file exists with the same name anyway so we don't need a
>redirect).
This has now been reported as PR web/107610. As I said there:
I've (temporarily) installed the redirects in a .htaccess on my own
site so you can test them.
Just replace "gcc.gnu.org" with "kayari.org" to check that it
redirects to a valid page of the gcc-12.2.0 docs:
https://kayari.org/onlinedocs/gccint/Test-Directives.html#Test-Directives
https://kayari.org/onlinedocs/gcc/Function-Attributes.html
This can be used to confirm that the regexes are working as intended.
>For example, on gcc.gnu.org:
>
>cd htdocs/onlinedocs/gcc-12.2.0
>
># All "missing" URLs are matched by these patterns:
>
>for i in {gcc,cpp}/*.html ; do test -f ../$i || echo $i ; done | grep -E -v '^(gcc|cpp)/([[:upper:]].*|_00(5f|40).*|aarch64-feature-modifiers|c99-like-fast-enumeration-syntax|compatibility_005f.*|dashMF|eBPF-Options|fdollars-in-identifiers|lto-dump-Intro|(m68k|msp430|picoChip|x86|zSeries).*|trigraphs).*\.html$'
>
>for i in gccint/*.html ; do test -f ../$i || echo $i ; done | grep -E -v '^gccint/([[:upper:]].*|(arm|define|input|poly|stack|window)_005f.*|compat-Testing|(epi|pro)logue-instruction-pattern|gcc-Directory|gcov-Testing|loop-iv|profopt-Testing|real-RTL-SSA-insns|shift-patterns|wi-arith.*)\.html$'
>
>for i in cppinternals/*.html ; do test -f ../$i || echo $i ; done | grep -E -v '^cppinternals/([[:upper:]].*)\.html$'
>
>
># No still-valid URLs are matched:
>
>for i in {gcc,cpp}/*.html ; do test -f ../$i && echo $i ; done | grep -E '^(gcc|cpp)/([[:upper:]].*|_00(5f|40).*|aarch64-feature-modifiers|c99-like-fast-enumeration-syntax|compatibility_005f.*|dashMF|eBPF-Options|fdollars-in-identifiers|lto-dump-Intro|(m68k|msp430|picoChip|x86|zSeries).*|trigraphs).*\.html$'
>
>for i in gccint/*.html ; do test -f ../$i && echo $i ; done | grep -E '^gccint/([[:upper:]].*|(arm|define|input|poly|stack|window)_005f.*|compat-Testing|(epi|pro)logue-instruction-pattern|gcc-Directory|gcov-Testing|loop-iv|profopt-Testing|real-RTL-SSA-insns|shift-patterns|wi-arith.*)\.html$'
>
>for i in cppinternals/*.html ; do test -f ../$i && echo $i ; done | grep -E '^cppinternals/([[:upper:]].*)\.html$'
>
>
>I haven't added redirects for other sub-dirs such as gccgo, gfortran,
>libgomp etc. so if somebody cares about those, they should deal with
>them.
>
>OK for wwwdocs?
>
>-- >8 --
>
>Add redirects from /onlinedocs/gcc-X to the latest gcc-X.Y.0 release
>(which will need to be updated when a release is made).
>
>Also add redirects from URLs for old trunk docs such as
>https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
>to the gcc-12 equivalent of that page.
>---
> htdocs/.htaccess | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
>diff --git a/htdocs/.htaccess b/htdocs/.htaccess
>index 18997d63..bf7124ea 100644
>--- a/htdocs/.htaccess
>+++ b/htdocs/.htaccess
>@@ -79,3 +79,17 @@ Redirect /onlinedocs/libc https://www.gnu.org/software/libc/manual/ht
> Redirect /onlinedocs/standards https://www.gnu.org/prep/standards/html_node/
>
> Redirect /onlinedocs/ref https://gcc.gnu.org/onlinedocs/gcc-4.3.2/
>+
>+Redirect /onlinedocs/gcc-5/ https://gcc.gnu.org/onlinedocs/gcc-5.5.0/
>+Redirect /onlinedocs/gcc-6/ https://gcc.gnu.org/onlinedocs/gcc-6.5.0/
>+Redirect /onlinedocs/gcc-7/ https://gcc.gnu.org/onlinedocs/gcc-7.5.0/
>+Redirect /onlinedocs/gcc-8/ https://gcc.gnu.org/onlinedocs/gcc-8.5.0/
>+Redirect /onlinedocs/gcc-9/ https://gcc.gnu.org/onlinedocs/gcc-9.5.0/
>+Redirect /onlinedocs/gcc-10/ https://gcc.gnu.org/onlinedocs/gcc-10.4.0/
>+Redirect /onlinedocs/gcc-11/ https://gcc.gnu.org/onlinedocs/gcc-11.3.0/
>+Redirect /onlinedocs/gcc-12/ https://gcc.gnu.org/onlinedocs/gcc-12.2.0/
>+
>+# Redirect URLs for old texinfo trunk docs to gcc-12
>+RedirectMatch permanent /onlinedocs/(gcc|cpp)/([[:upper:]].*|_00(5f|40).*|aarch64-feature-modifiers|c99-like-fast-enumeration-syntax|compatibility_005f.*|dashMF|eBPF-Options|fdollars-in-identifiers|lto-dump-Intro|(m68k|msp430|picoChip|x86|zSeries).*|trigraphs).*\.html$ https://gcc.gnu.org/onlinedocs/gcc-12/$1/$2.html
>+RedirectMatch permanent /onlinedocs/gccint/([[:upper:]].*|(arm|define|input|poly|stack|window)_005f.*|compat-Testing|(epi|pro)logue-instruction-pattern|gcc-Directory|gcov-Testing|loop-iv|profopt-Testing|real-RTL-SSA-insns|shift-patterns|wi-arith.*)\.html$ https://gcc.gnu.org/onlinedocs/gcc-12/gccint/$1.html
>+RedirectMatch permanent /onlinedocs/cppinternals/([[:upper:]].*)\.html$ https://gcc.gnu.org/onlinedocs/gcc-12/gccint/$1.html
@@ -79,3 +79,17 @@ Redirect /onlinedocs/libc https://www.gnu.org/software/libc/manual/ht
Redirect /onlinedocs/standards https://www.gnu.org/prep/standards/html_node/
Redirect /onlinedocs/ref https://gcc.gnu.org/onlinedocs/gcc-4.3.2/
+
+Redirect /onlinedocs/gcc-5/ https://gcc.gnu.org/onlinedocs/gcc-5.5.0/
+Redirect /onlinedocs/gcc-6/ https://gcc.gnu.org/onlinedocs/gcc-6.5.0/
+Redirect /onlinedocs/gcc-7/ https://gcc.gnu.org/onlinedocs/gcc-7.5.0/
+Redirect /onlinedocs/gcc-8/ https://gcc.gnu.org/onlinedocs/gcc-8.5.0/
+Redirect /onlinedocs/gcc-9/ https://gcc.gnu.org/onlinedocs/gcc-9.5.0/
+Redirect /onlinedocs/gcc-10/ https://gcc.gnu.org/onlinedocs/gcc-10.4.0/
+Redirect /onlinedocs/gcc-11/ https://gcc.gnu.org/onlinedocs/gcc-11.3.0/
+Redirect /onlinedocs/gcc-12/ https://gcc.gnu.org/onlinedocs/gcc-12.2.0/
+
+# Redirect URLs for old texinfo trunk docs to gcc-12
+RedirectMatch permanent /onlinedocs/(gcc|cpp)/([[:upper:]].*|_00(5f|40).*|aarch64-feature-modifiers|c99-like-fast-enumeration-syntax|compatibility_005f.*|dashMF|eBPF-Options|fdollars-in-identifiers|lto-dump-Intro|(m68k|msp430|picoChip|x86|zSeries).*|trigraphs).*\.html$ https://gcc.gnu.org/onlinedocs/gcc-12/$1/$2.html
+RedirectMatch permanent /onlinedocs/gccint/([[:upper:]].*|(arm|define|input|poly|stack|window)_005f.*|compat-Testing|(epi|pro)logue-instruction-pattern|gcc-Directory|gcov-Testing|loop-iv|profopt-Testing|real-RTL-SSA-insns|shift-patterns|wi-arith.*)\.html$ https://gcc.gnu.org/onlinedocs/gcc-12/gccint/$1.html
+RedirectMatch permanent /onlinedocs/cppinternals/([[:upper:]].*)\.html$ https://gcc.gnu.org/onlinedocs/gcc-12/gccint/$1.html