From 206795ce39dd85e5ae04dd73d02d9ef84d6be8fd Mon Sep 17 00:00:00 2001 From: Perside Rosalie Date: Wed, 30 Oct 2024 08:50:02 +0100 Subject: [PATCH 1/2] Include rewrite rules present in the WMF config for wikidata --- Dockerfile | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0d49b3294..c3adde7c2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -92,7 +92,28 @@ RUN set -eux; \ # Enable Short URLs echo ' RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]'; \ echo ' RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]'; \ - # Enable Wikibase /entity/ redirects, per https://meta.wikimedia.org/wiki/Wikidata/Notes/URI_scheme + # wikidata-like rewrite rules + echo ' RewriteRule ^/entity/statement/(L\d+)-([SF]\d+)-(.*)$ /wiki/Special:EntityData/$1#$1-$2\$$3 [NE,R=303,L]';\ + echo ' RewriteRule ^/entity/statement/([QqPpL]\d+)-(.*)$ /wiki/Special:EntityData/$1#$1\$$2 [NE,R=303,L]';\ + echo ' RewriteRule ^/entity/statement/([QpPpLM]\d+) /wiki/Special:EntityData/$1 [R=303,L]';\ + echo ' RewriteRule ^/value/(.*)$ /wiki/Special:ListDatatypes [R=303,L]';\ + echo ' RewriteRule ^/reference/(.*)$ /wiki/Help:Sources [R=303,L]';\ + echo ' RewriteRule ^/prop/direct/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/direct-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/novalue/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/statement/value/(.*)$ }/wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/statement/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/qualifier/value/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/qualifier/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/reference/value/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/reference/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/statement/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/qualifier/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/reference/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/prop/(.*)$ /wiki/Property:$1 [R=303,L]';\ + # Enable Wikibase /entity/ redirects, per https://meta.wikimedia.org/wiki/Wikidata/Notes/URI_scheme \ + #RewriteRule ^/entity/(.*)$ %{ENV:RW_PROTO}://%{SERVER_NAME}/wiki/Special:EntityData/$1 [R=303,QSA] + echo ' RewriteRule ^/entity/E(.*)$ /wiki/EntitySchema:E$1 [R=303,QSA,L]';\ echo ' RewriteRule ^/?entity/(.*)$ /wiki/Special:EntityData/$1 [R=303,QSA]'; \ echo ''; \ } > "$APACHE_CONFDIR/conf-available/mediawiki.conf"; \ From fb18fb8c802521036bc40b488facdbed3f5ce3af Mon Sep 17 00:00:00 2001 From: Perside Rosalie Date: Fri, 1 Nov 2024 11:18:31 +0100 Subject: [PATCH 2/2] Added ? character to the rewrite rules --- Dockerfile | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index c3adde7c2..bbdf1675e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -89,32 +89,31 @@ RUN set -eux; \ { \ echo ''; \ echo ' RewriteEngine On'; \ + # wikidata-like rewrite rules. "?" added everywhere but we are not sure why + echo ' RewriteRule ^/?entity/statement/(L\d+)-([SF]\d+)-(.*)$ /wiki/Special:EntityData/$1#$1-$2\$$3 [NE,R=303,L]';\ + echo ' RewriteRule ^/?entity/statement/([QqPpL]\d+)-(.*)$ /wiki/Special:EntityData/$1#$1\$$2 [NE,R=303,L]';\ + echo ' RewriteRule ^/?entity/statement/([QpPpLM]\d+) /wiki/Special:EntityData/$1 [R=303,L]';\ + echo ' RewriteRule ^/?value/(.*)$ /wiki/Special:ListDatatypes [R=303,L]';\ + echo ' RewriteRule ^/?reference/(.*)$ /wiki/Help:Sources [R=303,L]';\ + echo ' RewriteRule ^/?prop/direct/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/direct-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/novalue/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/statement/value/(.*)$ }/wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/statement/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/qualifier/value/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/qualifier/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/reference/value/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/reference/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/statement/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/qualifier/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/reference/(.*)$ /wiki/Property:$1 [R=303,L]';\ + echo ' RewriteRule ^/?prop/(.*)$ /wiki/Property:$1 [R=303,L]';\ + # Enable Wikibase /entity/ redirects, per https://meta.wikimedia.org/wiki/Wikidata/Notes/URI_scheme \ + echo ' RewriteRule ^/?entity/E(.*)$ /wiki/EntitySchema:E$1 [R=303,QSA,L]';\ + echo ' RewriteRule ^/?entity/(.*)$ /wiki/Special:EntityData/$1 [R=303,QSA]'; \ # Enable Short URLs echo ' RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]'; \ echo ' RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]'; \ - # wikidata-like rewrite rules - echo ' RewriteRule ^/entity/statement/(L\d+)-([SF]\d+)-(.*)$ /wiki/Special:EntityData/$1#$1-$2\$$3 [NE,R=303,L]';\ - echo ' RewriteRule ^/entity/statement/([QqPpL]\d+)-(.*)$ /wiki/Special:EntityData/$1#$1\$$2 [NE,R=303,L]';\ - echo ' RewriteRule ^/entity/statement/([QpPpLM]\d+) /wiki/Special:EntityData/$1 [R=303,L]';\ - echo ' RewriteRule ^/value/(.*)$ /wiki/Special:ListDatatypes [R=303,L]';\ - echo ' RewriteRule ^/reference/(.*)$ /wiki/Help:Sources [R=303,L]';\ - echo ' RewriteRule ^/prop/direct/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/direct-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/novalue/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/statement/value/(.*)$ }/wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/statement/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/qualifier/value/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/qualifier/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/reference/value/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/reference/value-normalized/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/statement/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/qualifier/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/reference/(.*)$ /wiki/Property:$1 [R=303,L]';\ - echo ' RewriteRule ^/prop/(.*)$ /wiki/Property:$1 [R=303,L]';\ - # Enable Wikibase /entity/ redirects, per https://meta.wikimedia.org/wiki/Wikidata/Notes/URI_scheme \ - #RewriteRule ^/entity/(.*)$ %{ENV:RW_PROTO}://%{SERVER_NAME}/wiki/Special:EntityData/$1 [R=303,QSA] - echo ' RewriteRule ^/entity/E(.*)$ /wiki/EntitySchema:E$1 [R=303,QSA,L]';\ - echo ' RewriteRule ^/?entity/(.*)$ /wiki/Special:EntityData/$1 [R=303,QSA]'; \ echo ''; \ } > "$APACHE_CONFDIR/conf-available/mediawiki.conf"; \ a2enconf mediawiki