원문 보기: https://dawoum.duckdns.org/wiki/Extension:UrlShortener
UrlShortener 확장은 미디어위키 확장으로 기본적인 URL 단축 서비스를 제공합니다. 이것이 제대로 작동하려면 웹 서버 구성을 약간 변경해야 할 것입니다. 이것은 원래 URL Shortener RFC를 구현하기 위해 설계되었습니다.
Installation
미디어위키 확장 내려받기 지면에서 해당하는 버전을 다운로드하고 위키의 extensions 디렉토리에 UrlShortener에 푸십시오.
또는 개발자와 코드 기여자는 대신 다음을 사용하여 Git에서 확장 프로그램을 설치해야 합니다.
cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/UrlShortener
미디어위키 설정 LocalSettings.php에 다음을 추가하십시오:
wfLoadExtension( 'UrlShortener' );
이 확장에 필요한 필수 데이터베이스 테이블을 자동으로 생성하는 업데이트 스크립트를 실행하십시오:
cd /var/www/html/w
php maintenance/run.php ./maintenance/update.php
Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인하십시오.
Configuration
LocalSettings.php
URL routing configuration:
단축 URL을 생성할 때 사용할 템플릿을 구성하십시오. 이 기능을 사용하는 것은 mod_rewrite (또는 이와 동등한 것)를 요구할 것입니다. 만약 false (기본값)로 설정하면, 단축 URL은 그렇게 짧지 않은 /wiki/Special:UrlRedirector/5234를 사용하는데, 왜냐하면 그것은 웹 서버 구성과 관계없이 작동할 것이기 때문입니다.
만약 example.com/r/5234 형식의 짧은 URL을 원하면, 다음과 같이 설정하십시오:
$wgUrlShortenerTemplate = '/r/$1';
Short domain name:
사용자 정의 짧은 도메인 이름이 있으면, 다음을 사용함으로써 설정할 수 있습니다:
$wgUrlShortenerServer = "short.wiki";
만약 false (기본값)으로 설정되면, $wgServer를 사용할 것입니다.
Global database:
위키 농장에 하나의 중앙 데이터베이스를 사용하기를 원하면 이것을 데이터베이스 이름으로 설정하십시오. 만약 false (기본값)로 설정하면, 위키의 정규 데이터베이스를 사용할 것입니다:
$wgUrlShortenerDBName = false;
데이터베이스가 외부 클러스터에 있으면, 해당 클러스터도 구성할 필요가 있습니다:
$wgUrlShortenerDBCluster = false;
Allow arbitrary ports:
기본적으로, 포트 80과 443을 갖는 URL만 허용되고 자동으로 제거됩니다. 만약 위키가 사용자 지정 포트를 사용하여 설정되면, 임의의 포트를 가지는 URL을 단축할 수 있도록 이것을 true로 설정하십시오:
$wgUrlShortenerAllowArbitraryPorts = true;
AllowedDomains regex:
사용자가 링크를 제출할 수 있는 허용 도메인을 구성하십시오. 이것은 정규 표현식의 배열입니다. 만약 false (기본값)로 설정하면, 현재 도메인 ($wgServer 사용)에 대한 허용 목록을 설정할 것입니다.
$wgUrlShortenerAllowedDomains = false;
예를 들어, wikipedia.org 또는 wikimedia.org로의 링크만 허용 목록에 추가하기 위해, 다음을 사용합니다:
$wgUrlShortenerAllowedDomains = array(
'(.*\.)?wikimedia\.org',
'(.*\.)?wikipedia\.org',
);
임의의 도메인을 허용하기를 원하면:
$wgUrlShortenerAllowedDomains = array( '.*' );
ApprovedDomains documentation:
이것은 허용된 도메인의 배열이지만 인간이 읽을 수 있는 형태입니다. 그것은 Special:UrlShortener에 표시될 것입니다.
만약 false (기본값)로 설정하면, $wgServer의 정규화된 버전이 출력될 것입니다:
$wgUrlShortenerApprovedDomains = false;
위의 예에서 wikipedia.org와 wikimedia.org만 허용하면:
$wgUrlShortenerApprovedDomains = array(
'*.wikimedia.org',
'*.wikipedia.org',
);
Shortcode character set:
단축 코드가 사용하는 문자 집합을 사용자 지정하기를 원하면, 이 설정을 덮어쓸 수 있습니다. 이것은 설정 중에 한 번만 수행되어야 합니다. 일단 그 후에 변경하면, 임의의 기존의 단축 URL이 잘못된 대상으로 이동할 것입니다.
$wgUrlShortenerIdSet = '23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz$';
목록에서 첫 번째 문자는 선행하는 영으로 처리됩니다; 해당 문자로 시작하는 단축 코드는 생성될 것이고, URL에서 단축 코드 시작 부분에 사용될 경우 무시됩니다 (예를 들어, https://w.wiki/22222222w는 https://w.wiki/w와 같습니다).
Read-only mode:
$wgUrlShortenerReadOnly를 true로 설정하여 사용자가 새로운 짧은 URL을 생성하지 못하게 막습니다. 이것은 주로 위키미디어 사이트에 배포하는 동안 해킹으로 의도된 것이고 더 이상 필요하지 않으면 제거됩니다.
QR codes:
MediaWiki version: |
≥ 1.41
|
UrlShortener 버전 1.1.0 기준, QR 코드 공유를 활성화할 수 있습니다. 여기에는 두 가지 구성 설정이 있습니다. 하나는 단순히 QR 코드 공유를 활성화하는 것입니다.
$wgUrlShortenerEnableQrCode = true;
현재 "Download QR code" 링크가 사이드바에 나타나게 하기를 원하면 $wgUrlShortenerEnableSidebar도 설정해야 함에 주의하십시오.
QR 코드가 가리키는 링크는 그것이 매우 긴 경우에만 단축됩니다. 이것은 사용자가 QR 코드를 스캔할 때 익숙한 도메인을 보는 것을 선호하지만, URL이 너무 길면 QR 코드의 픽셀 밀도가 스캔하기 너무 어렵기 때문입니다. 초과 시, QR 코드를 만들기 전에 먼저 단축되는 URL의 길이를 제어할 수 있습니다. 여기의 숫자는 문자가 아닌 바이트 수를 나타냅니다.
$wgUrlShortenerQrCodeShortenLimit = 200;
VirtualHost or .htaccess
실제로 짧은 URL을 만들기 위해, mod_rewrite 또는 이와 유사한 것을 사용하여 재작성 규칙을 설정할 필요가 있습니다. .htaccess 파일에 넣을 내용의 예는 확장과 함께 제공됩니다. 템플릿이 /r/$1로 설정되었으면, 다음을 사용할 수 있습니다:
RewriteEngine On
RewriteRule ^r/(.*)$ /w/index.php?title=Special:UrlRedirector/$1 [PT]
nginx를 사용하는 중이면, 다음을 server { 정의에 추가할 수 있습니다:
location ~ ^/r/(.*) {
return 301 /w/index.php?title=Special:UrlRedirector/$1;
}
여기서는 $wgScriptPath가 /w로 설정되어 있다고 가정합니다.
API
이 확장은 주어진 url에 대해 단축 url을 가져오고, 이미 존재하지 않으면 만드는 API 모듈 action=shortenurl을 제공합니다. 여기에서 API 설명서를 참조하십시오: https://meta.wikimedia.org/w/api.php?action=help&modules=shortenurl.
- url - URL to shorten.
응답:
{
"shortenurl": {
"shorturl": "http://127.0.0.1:8080/s/3"
}
}