Manual:thumb_handler.php
Appearance
From mediawiki.org
| MediaWiki file: thumb_handler.php | |
|---|---|
| Location: | / |
| Source code: | master • 1.45.1 • 1.44.3 • 1.43.6 |
| Classes: | Find code • Find documentation |
Description
[edit ]thumb_handler.php is a script to be used to automatically resize images from a 404 handler. For example, when a browser requests a thumbnail that has not been created before.
To use it, follow the steps below, then set $wgGenerateThumbnailOnParse to false.
If you have $wgLocalFileRepo defined in LocalSettings.php, then you need to also set:
$wgLocalFileRepo['transformVia404'] = true;
Server configuration
[edit ]The configuration below assumes you don't have custom file repos (at least $wgLocalFileRepo ) configured manually. In that case, you will need to adjust the path of rewrite rules according to
$wgLocalFileRepo['hashLevels'] and $wgLocalFileRepo['deletedHashLevels'].Apache
[edit ]Create a rewrite rule to call thumb_handler.php when a file in $wgUploadPath /thumb/ doesn't exist.
If your wiki is in the /w directory, something like this should work for Apache:
If $wgHashedUploadDirectory is set to true:
RewriteEngineon RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f RewriteRule^/?w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/[^/]+/[^/]+$/w/thumb_handler.php[L,QSA] RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f RewriteRule^/?w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/[^/]+/[^/]+$/w/thumb_handler.php[L,QSA]
If $wgHashedUploadDirectory is set to false:
RewriteEngineon RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f RewriteRule^/?w/images/thumb/[^/]+/[^/]+$/w/thumb_handler.php[L,QSA] RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f RewriteRule^/?w/images/thumb/archive/[^/]+/[^/]+$/w/thumb_handler.php[L,QSA]
nginx
[edit ]location/w/images{ # Separate location for images/ so .php execution won't apply location~^/w/images/thumb/(archive/)?[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/[^/]*([0-9]+)px-.*${ # Thumbnail handler for MediaWiki # This location only matches on a thumbnail's url # If the file does not exist we use @thumb to run the thumb.php script try_files$uri$uri/@thumb; } } # Thumbnail 404 handler, only called by try_files when a thumbnail does not exist location@thumb{ # Do a rewrite here so that thumb.php gets the correct arguments rewrite^/w/images/thumb/([0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/[^/]*([0-9]+)px-.*)$/w/thumb_handler.php/1ドル; rewrite^/w/images/thumb/(archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/[^/]*([0-9]+)px-.*)$/w/thumb_handler.php/1ドル; }
Caddy
[edit ]# Create a named matcher that matches on non-existing files.
@thumb404 {
path /w/images/thumb/*
not file
}
# Thumbnail 404 handler, only called by when a thumbnail does not exist.
rewrite @thumb404 /w/thumb_handler.php