Manuel:URL courte/Page title - nginx, Root Access, PHP en tant que module CGI

This page is a translated version of the page Manual:Short URL/Page title - nginx, Root Access, PHP as a CGI module and the translation is 10% complete.

Cette configuration :

  • Is known to work and has been tested with MediaWiki 1.21 through 1.27.
  • This short URL format has been extensively tested for two years in a public environment. It has also been adapted to be used in Gamepedia's wiki farm.
  • Is designed for an Ubuntu Linux distribution. It should work under other Linux distributions with minor tweaking. It should work in Windows as well with more tweaking to the folder paths.
  • The wiki is installed in the root html/http directory. Example: /home/user/public_html or /var/www for other Linux distributions.
  • Pages will be accessed at or This will also work as as any subdomain should work under the server_name directive and a minor tweak to LocalSettings.php.
  • Page can still be accessed with and This is great since if your wiki has been up previously old search engine links and bookmarks will continue to work.
  • Viewing File:Image.jpg files and similar with a period in the name will work with this setup.
  • Static files will be served with max expiration header to reduce load on the server.
  • This configuration will work with robots.txt and other files stuck in the root directory. This script checks for the existence of the file to serve directly before passing the URI request off to MediaWiki.

nginx configuration

The following nginx configuration can be added directly into the /etc/nginx/nginx.conf file for a server hosting one site or into a /etc/nginx/sites-available/ file setup for a server with multiple sites. Make sure to change the server_name, the root, and access/error log file names.

The content on this page is vastly incomplete! It does not contain important settings. E.g. using the below information, your wiki will reveal private data to the public. Instead, use the short URL service by Redwerks to automatically generate a configuration, which solves these issues. An example of such a configuration should be added here!
server {
	listen 80;

	root /home/user/public_html;
	index index.php index.html index.htm;

	access_log /var/log/nginx/access-example.log;
	error_log /var/log/nginx/error-example.log;

	location ~ \.ht {
		deny all;

	location / {
		try_files $uri $uri/ @rewrite;

	location @rewrite {
		rewrite ^/(.*)$ /index.php;

	location ^~ /maintenance/ {
		return 403;

	location ~ \.php$ {
		include /etc/nginx/fastcgi_params;

		fastcgi_index index.php;

		fastcgi_param  SCRIPT_FILENAME	$document_root$fastcgi_script_name;

		try_files $uri @rewrite;
  • Edit the LocalSettings.php file in the root html directory and add/update these settings:
$wgScriptPath	    = "";
$wgArticlePath      = "/$1";
$wgUsePathInfo      = true;
$wgScriptExtension  = ".php";

If you added the configuration into a sites-available configuration folder make sure to create the symlink into the sites-enabled folder. Reload your nginx configuration by typing: /etc/init.d/nginx reload

See also