Welcome! Log In Create A New Profile


Re: rewrite rule: MediaWiki to static site

Francis Daly
August 20, 2018 07:30AM
On Mon, Aug 20, 2018 at 06:09:10AM -0400, petecooper wrote:

Hi there,

> I'm diverting traffic from an retired MediaWiki site to an active static
> site. I'm somewhat confused with the process of `rewrite`-ing old URLs with
> a query string to standard URLs *without* a query string on the static site.
> For clarity, I do not need or want query strings on the new site.

In this case, it looks to me that you can probably "return" rather than
"rewrite", since everything should probably be a http redirect.

> Retired URLs examples:
> https://example.com/wiki/index.php?title=en/Main_Page
> https://example.com/wiki/index.php?title=Glossary
> https://example.com/wiki/index.php?title=Category:Troubleshooting
> New URLs examples:
> https://example.net/MainPage
> https://example.net/Glossary
> https://example.net/Troubleshooting
> All the retired URLs are attached to `/wiki/index.php` with a single query
> string.
> There is no direct correlation between the old URLs and the new ones, and I
> have a before-and-after list of URLs to put into a 200+ entry `rewrite`
> list.
> My question is two-fold:
> 1) Is it better (objectively) to have all the rewrite rules inside a
> `location` referring to `/wiki/index.php` since the only non-Mediawiki URL
> on the retired site is `/`?

Yes. Except I would have the config be not a lot more than

location = /wiki/index.php { return 301 https://example.net/$my_static_wiki; }

> 2) How can I best build the `rewrite` list without using `if` or nested
> `map`?

map $arg_title $my_static_wiki {
default ""; # or whatever
en/Main_Page MainPage;
Glossary Glossary;
Category:Troubleshooting Troubleshooting;

Make that map (http://nginx.org/r/map) be as big as you like. And you can
"include" an external file if you find that easier.

Note: I use "$arg_title" are the string. You could use "$query_string",
but then the matching values would be of the form title=en/Main_Page.

And because I put "http://example.net/" in the "return" directive,
I don't put that part of the destination url in the map. Adjust to taste.

> I am grateful for your time and attention, and I would very much appreciate
> an example rewrite rule and/or some reading recommendations for `rewrite`
> with query strings.

If you still want to know about rewrite with query strings, you can look
at http://nginx.org/r/rewrite

Basically -- the incoming query string is preserved unless you ask for
it not to be.

Good luck with it,

Francis Daly francis@daoine.org
nginx mailing list
Subject Author Posted

rewrite rule: MediaWiki to static site

petecooper August 20, 2018 06:09AM

Re: rewrite rule: MediaWiki to static site

Francis Daly August 20, 2018 07:30AM

Re: rewrite rule: MediaWiki to static site

petecooper August 20, 2018 04:10PM

Re: rewrite rule: MediaWiki to static site

jeffdyke August 20, 2018 06:36PM

Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 100
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready