]> birchwood-abbey.net Git - Network.git/commitdiff
Redirect ~puck/ requests. Provide a "user-selected canonical".
authorMatt Birkholz <matt@birchwood-abbey.net>
Sat, 9 May 2026 21:27:18 +0000 (15:27 -0600)
committerMatt Birkholz <matt@birchwood-abbey.net>
Sat, 9 May 2026 21:27:18 +0000 (15:27 -0600)
This still leaves 143,630 pages un-indexed by Google, each a
"duplicate without user-selected canonical" according to Google's
Search Console.  All are /git? URLS generated by Gitweb and involve an
optional(?) .git suffix (or not) on repository names.

README.org
roles_t/abbey-core/tasks/main.yml
roles_t/abbey-front/tasks/main.yml

index 68597da9666f90ffceb05cc29eb932715b91279d..82f1e3fb51bb76a2015892f35f2e4c0d5a54a0d5 100644 (file)
@@ -492,6 +492,36 @@ AliasMatch /Photos/(20[0-9][0-9])_([0-9][0-9])_([0-9][0-9])/$ \
 AliasMatch /Photos/$ {{ docroot }}/Photos/index.html
 #+END_SRC
 
+** Configure Matt's Alter Ego
+
+Many years ago Matt's evil twin, Friar Puck, released a "pucked"
+version of MIT/GNU Scheme, advertising that it was available at a
+couple URLs:
+
+- ~git://birchwood-abbey.net/~puck/mit-scheme.git~
+- ~https://birchwood-abbey.net/~puck/Scheme/~
+
+These are actually duplicates of the "resources" at these URLs:
+
+- ~git://birchwood-abbey.net/~matt/mit-scheme.git~
+- ~https://birchwood-abbey.net/~matt/Scheme/~
+
+So the abbey's Google Indexing report warned of the duplicates, and
+explained that they would not be indexed.  To get them off the report,
+the following redirects make clear that the canonical source is
+Matt's.
+
+#+NAME: apache-pucked
+#+CAPTION: ~apache-pucked~
+#+BEGIN_SRC conf
+RedirectMatch /~puck$ /~matt
+RedirectMatch /~puck/(.*) /~matt/$1
+#+END_SRC
+
+The seemingly duplicated Git repository at ~/~puck/mit-scheme.git~ is
+actually the symbolic link at =/home/puck/Public= targeting
+=/home/matt/Public=.
+
 ** Configure Tellurion Expiration on Front
 
 The abbey's =tellurion.png= is updated every 15 minutes on the quarter
@@ -534,10 +564,11 @@ The abbey simply creates a =birchwood-abbey.net-vhost.conf= file in
 =/etc/apache2/sites-available/=.
 
 The following task adds the [[apache-gitweb][~apache-gitweb~]], [[apache-abbey][~apache-abbey~]],
-[[apache-photos][~apache-photos~]], and [[apache-tellurion][~apache-tellurion~]] directives described above to
-the =-vhost.conf= file, and includes =options-ssl-apache.conf= from
-=/etc/letsencrypt/=.  The rest of the Let's Encrypt configuration is
-discussed in the following [[*Install Let's Encrypt][Install Let's Encrypt]] section.
+[[apache-photos][~apache-photos~]], [[apache-pucked][~apache-pucked~]] and [[apache-tellurion][~apache-tellurion~]] directives
+described above to the =-vhost.conf= file, and includes
+=options-ssl-apache.conf= from =/etc/letsencrypt/=.  The rest of the
+Let's Encrypt configuration is discussed in the following [[*Install Let's Encrypt][Install
+Let's Encrypt]] section.
 
 #+CAPTION: [[file:roles_t/abbey-front/tasks/main.yml][=roles_t/abbey-front/tasks/main.yml=]]
 #+BEGIN_SRC conf :tangle roles_t/abbey-front/tasks/main.yml :noweb no-export
@@ -553,6 +584,8 @@ discussed in the following [[*Install Let's Encrypt][Install Let's Encrypt]] sec
 
         <<apache-photos>>
 
+        <<apache-pucked>>
+
         <<apache-tellurion>>
 
         IncludeOptional /etc/letsencrypt/options-ssl-apache.conf
@@ -1054,7 +1087,8 @@ and included by the following code block.
 The Apache2 configuration on Core specifies three web sites (live,
 test, and campus).  The live and test sites must operate just like the
 site on Front.  Their configurations include the same [[apache-gitweb][~apache-gitweb~]],
-[[apache-abbey][~apache-abbey~]], [[apache-photos][~apache-photos~]], and [[apache-tellurion][~apache-tellurion~]] used on Front.
+[[apache-abbey][~apache-abbey~]], [[apache-photos][~apache-photos~]], [[apache-pucked][~apache-pucked~]] and
+[[apache-tellurion][~apache-tellurion~]] directives used on Front.
 
 #+CAPTION: [[file:roles_t/abbey-core/tasks/main.yml][=roles_t/abbey-core/tasks/main.yml=]]
 #+BEGIN_SRC conf :tangle roles_t/abbey-core/tasks/main.yml :noweb no-export
@@ -1070,6 +1104,8 @@ site on Front.  Their configurations include the same [[apache-gitweb][~apache-g
 
         <<apache-photos>>
 
+        <<apache-pucked>>
+
         <<apache-tellurion>>
     dest: /etc/apache2/sites-available/live-vhost.conf
     mode: u=rw,g=r,o=r
@@ -1087,6 +1123,8 @@ site on Front.  Their configurations include the same [[apache-gitweb][~apache-g
 
         <<apache-photos>>
 
+        <<apache-pucked>>
+
         <<apache-tellurion>>
     dest: /etc/apache2/sites-available/test-vhost.conf
     mode: u=rw,g=r,o=r
index 5d4f04f70c197f2848884906750e3338e028c7ce..e25eb3563a443ac8f66053f8e7c1d902c41b0d59 100644 (file)
                    {{ docroot }}/Photos/$1/$2/$3/index.html
         AliasMatch /Photos/$ {{ docroot }}/Photos/index.html
 
+        RedirectMatch /~puck$ /~matt
+        RedirectMatch /~puck/(.*) /~matt/$1
+
         <Directory {{ docroot }}/Tellurion/>
             ExpiresActive On
             ExpiresByType image/png "modification plus 15 minutes"
                    {{ docroot }}/Photos/$1/$2/$3/index.html
         AliasMatch /Photos/$ {{ docroot }}/Photos/index.html
 
+        RedirectMatch /~puck$ /~matt
+        RedirectMatch /~puck/(.*) /~matt/$1
+
         <Directory {{ docroot }}/Tellurion/>
             ExpiresActive On
             ExpiresByType image/png "modification plus 15 minutes"
index 8f05f4e842a1661b2f8b1f80beab6cbea3ced024..8f5303d1ac57050be96117fe4c9ce380014505e8 100644 (file)
                    {{ docroot }}/Photos/$1/$2/$3/index.html
         AliasMatch /Photos/$ {{ docroot }}/Photos/index.html
 
+        RedirectMatch /~puck$ /~matt
+        RedirectMatch /~puck/(.*) /~matt/$1
+
         <Directory {{ docroot }}/Tellurion/>
             ExpiresActive On
             ExpiresByType image/png "modification plus 15 minutes"