Jump to content

Espansione:UrlShortener

From mediawiki.org
This page is a translated version of the page Extension:UrlShortener and the translation is 4% complete.
Not to be confused with: Extension:ShortUrl.
Manuale sulle Estensioni MediaWiki
UrlShortener
Stato della release: stabile
Implementazione Pagina speciale , API , MyWiki
Descrizione Provides a basic URL shortening service
Autore(i) YuviPandadiscussione
Versione Continuous updates
MediaWiki 1.25+
PHP 5.4+
Modifiche al Database
  • $wgUrlShortenerAllowArbitraryPorts
  • $wgUrlShortenerAllowedDomains
  • $wgUrlShortenerEnableQrCode
  • $wgUrlShortenerQrCodeShortenLimit
  • $wgUrlShortenerUrlSizeLimit
  • $wgUrlShortenerServer
  • $wgUrlShortenerEnableSidebar
  • $wgUrlShortenerIdMapping
  • $wgUrlShortenerAltPrefix
  • $wgUrlShortenerApprovedDomains
  • $wgUrlShortenerTemplate
  • $wgUrlShortenerReadOnly
  • $wgUrlShortenerIdSet
  • urlshortener-manage-url
  • urlshortener-create-url
  • urlshortener-view-log
Licenza Apache License 2.0
Scaricare
Traduci l'estensione UrlShortener se è disponibile su translatewiki.net
Problemi Compiti aperti · Riportare un bug

L'espansione UrlShortener dà un servizio per accorciare Url come espansione di MediaWiki. Ci vorranno alcune modifiche alla configurazione del server web per funzionare correttamente. It was originally designed to implement the URL Shortener RfC.

For instructions on using UrlShortener with Wikimedia projects, see the information at m:Wikimedia URL Shortener.

Installation

  • Download and move the extracted UrlShortener folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UrlShortener
    
  • Aggiungi il seguente codice al tuo $LocalSettings (preferibilmente alla fine):
    wfLoadExtension( 'UrlShortener' );
    
  • Esegui lo script di aggiornamento, che creerà automaticamente nel database le tavole necessarie a questa estensione.
  • Configure as required.
  • Adapt as required.
  • Yes Done – Naviga in Special:Version nella tua wiki per verificare che l'estensione sia stata installata correttamente.


Vagrant installation:

  • Se stai usando Vagrant , installa con vagrant roles enable urlshortener --provision
To make //example.com/r/foo work properly, you will need to set up rewrite rules for your webserver. Example rules for Apache are provided inside the extension.

Configuration

LocalSettings.php

URL routing configuration:

Configures the template to use when generating the shortened URL. Using this feature will require mod_rewrite (or an equivalent). If set to false (default), the short URLs will use the not-so-short /wiki/Special:UrlRedirector/5234 since it will work regardless of web server configuration.

If you want your short URLs in the form of example.com/r/5234, you would set:

$wgUrlShortenerTemplate = '/r/$1';

Short domain name:

If you have a custom short domain name, you can set it by using:

$wgUrlShortenerServer = "short.wiki";

If set to false (default), it will use $wgServer .

Global database:

Set this to the name of a database if you wish to use one central database for your wiki farm. If set to false (default), it will use the wiki's normal database.

$wgVirtualDomainsMapping['virtual-urlshortener'] = [ 'db' => '<shared-db>' ]

Allow arbitrary ports:

By default, only URLs with ports 80 and 443 are accepted and are automatically removed. If your wiki is set up using a custom port, set this to true to allow shortening URLs that have arbitrary ports.

$wgUrlShortenerAllowArbitraryPorts = true;

AllowedDomains regex:

Configures the acceptable domains that users can submit links for. This is an array of regular expressions. If set to false (default), it will set up a allowlist for the current domain (using $wgServer ).

$wgUrlShortenerAllowedDomains = false;

For example, to only whitelist links to wikipedia.org or wikimedia.org, we would use the following:

$wgUrlShortenerAllowedDomains = array(
	'(.*\.)?wikimedia\.org',
	'(.*\.)?wikipedia\.org',
);

If we want to allow any domain:

$wgUrlShortenerAllowedDomains = array( '.*' );

ApprovedDomains documentation:

This is an array of the allowed domains but in a human-readable form. It will be displayed on Special:UrlShortener.

If set to false (default), it will output a normalized version of $wgServer .

$wgUrlShortenerApprovedDomains = false;

If you only allow wikipedia.org and wikimedia.org in the above example:

$wgUrlShortenerApprovedDomains = array(
	'*.wikimedia.org',
	'*.wikipedia.org',
);

Shortcode character set:

If you want to customize the character set the shortcodes use, you can override this setting. This should be done only once during the setup. Once changed thereafter, any existing short URLs will go to the wrong destination.

$wgUrlShortenerIdSet = '23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz$';

The above string has been the default for many years, but could be problematic owing to the $ character which some social media platforms remove from URLs. New installations may wish to configure this to exclude $.

The first character in the list is treated as a leading zero; no shortcodes beginning with that character will be created, and it is ignored when used at the start of the shortcode in a URL (e.g. https://w.wiki/22222222w is the same as https://w.wiki/w).

Read-only mode:

Set $wgUrlShortenerReadOnly to true to prevent users from creating new short URLs. This is mainly intended as a hack while deploying to Wikimedia sites and will be removed once it is no longer needed.

QR codes:

Versione MediaWiki:
1.41

As of UrlShortener version 1.1.0, you can enable QR code sharing. This has two configurations settings. One is simply to enable QR code sharing.

$wgUrlShortenerEnableQrCode = true;

Note that currently, $wgUrlShortenerEnableSidebar must also be set if you want the "Scarica codice QR" link to appear in the sidebar.

The link the QR codes point to is only shortened if it is very long. This is because users would prefer to see a familiar domain when scanning a QR code, but if the URL is too long then the pixel density of the QR code will be too difficult to scan. You can control the length of URLs that, when exceeded, will first be shortened before creating a QR code. The number here refers to the number of bytes, not characters.

$wgUrlShortenerQrCodeShortenLimit = 200;

VirtualHost or .htaccess

To have truly short URLs, you will need to set up rewrite rules, using mod_rewrite or something similar. An example of what to put in your .htaccess file comes with the extension. If our template was set up to /r/$1, then we could use:

RewriteEngine On
RewriteRule ^r/(.*)$ /w/index.php?title=Special:UrlRedirector/$1 [PT]

If you are using nginx, you can add the following within a server directive:

location ~ ^/r/(.*) {
	return 301 /w/index.php?title=Special:UrlRedirector/$1;
}

This assumes your $wgScriptPath is set to /w.

Alternative URL

As the shortener will eventually start generating bad words in various languages, an alternative short URL beginning with _ is also created (see T230685).

To avoid this extra URL from being shown you can blank the page MediaWiki:Urlshortener-shortened-url-alt on your wiki.

API

This extension provides the API module action=shortenurl to get the shortened url for a given url, creating it if does not exist already. You can see the API documentation for help.

  • url - URL to shorten.

Response:

{
    "shortenurl": {
        "shorturl": "http://127.0.0.1:8080/s/3"
    }
}

Special pages

  • Special:UrlShortener - Convert a full URL to a short URL.
  • Special:ManageShortUrls - Delete a short URL or restore a deleted one.
  • Special:UrlRedirector - With a short URL as parameter (e.g. Special:UrlRedirector/bb) this will redirect to the real URL.
  • Special:QrCode - See above.

See also