Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Feb 2013 00:27:01 -0800
From:      "Constantine A. Murenin" <cnst++@FreeBSD.org>
To:        freebsd-chat@FreeBSD.org, freebsd-current@FreeBSD.org, freebsd-doc@FreeBSD.org
Subject:   announcing mdoc.su, short manual page URLs
Message-ID:  <20130219082700.GA9938@Cns.Cns.SU>

next in thread | raw e-mail | index | archive | help
Dear freebsd-{chat,current,doc}@,

I would like to announce and introduce <URL:http://mdoc.su/>, 
a deterministic URL shortener for BSD manual pages, 
written entirely in nginx.conf.

It supports several address schemes, for example:

http://mdoc.su/f/zfs
http://mdoc.su/f/zfs.8
http://mdoc.su/f/8/zfs
http://mdoc.su/freebsd/zfs
http://mdoc.su/FreeBSD/zfs

http://mdoc.su/d/hammer.5
http://mdoc.su/d/hammer.8

etc.

Source code for the whole mdoc.su.nginx.conf is available at:

  https://github.com/cnst/mdoc.su
  https://bitbucket.org/cnst/mdoc.su

Specifically, the following currently controls FreeBSD rewriting:

	location /FreeBSD {	rewrite	^/FreeBSD(/.*)?$	/f$1;	}
	location /f {
		set	$fb	"http://www.freebsd.org/cgi/man.cgi?query=";
		set	$fs	"&sektion=";
		rewrite	^/freebsd(/.*)?$	/.$1;
		rewrite	^/./([^/.]+)/([^/]+)$		$fb$2$fs$1	redirect;
		rewrite	^/./([^/]+)\.([1-9])$		$fb$1$fs$2	redirect;
		rewrite	^/./([^/]+)$			$fb$1$fs	redirect;
		rewrite	^/./?$	/	last;
		return	404;
	}

Translation: "/FreeBSD" and "/freebsd" get rewritten to "/f" internally, 
without any extra replies to the user, and then the rest of the URI is 
analysed, and a "302 Found" redirect is finally issued to the user.

Pages like http://mdoc.su/f/ redirect to the main "/" page internally, 
without affecting the URL that's visible to the user, making it easier 
to keep a starting page specifically for one BSD.

Questions, comments and suggestions are very welcome.  
Available through IPv4 and IPv6.  
Enjoy!

Best regards,
Constantine.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130219082700.GA9938>