Manual:$wgUrlProtocols/ru

From Linux Web Expert

<translate> Parser</translate>: $wgUrlProtocols
Определяет протоколы, которые поддерживаются и транслируются парсером mediawiki в HTML.
<translate> Introduced in version:</translate>1.5.0 (r10229)
<translate> Removed in version:</translate><translate> still in use</translate>
<translate> Allowed values:</translate>(массив строк) (1.6+)
(строка, содержащая регулярное выражение) (1.5)
<translate> Default value:</translate>см. ниже

Подробности

Определяет список URL протоколов, которые MediaWiki будет распознавать как валидные в wfParseUrl(). Используется во многих местах. Наиболее заметный эффект - определение, какие протоколы разрешены для внешних ссылок: не распознанные протоколы будут игнорироваться без генерации ссылок. Однако, данный список также используется во многих других местах, включая код для Special:LinkSearch и вспомогательные функции, такие как wfParseUrl(), используемые во многих местах.

Следующие примеры не работают (так как "test://" не объявлен как валидный протокол):

  • test://www.example.com
  • [test://www.example.com]
  • [test://www.example.com link text]
  • Некоторые браузеры, такие как Mozilla Firefox, не позволяют переходить по ссылкам с URL file на страницах, полученных по HTTP. Это сделано из соображений безопасности. Обратитесь к этой статье mozillaZine для получения подробностей, в том числе советов как обойти это ограничение.
  • Большинство браузеров не поддерживает URL "удалённых файлов" типа file://host/share (только Internet Explorer обрабатывает их по-умолчанию. Для Firefox необходимо либо установить дополнение, либо использовать ровно 5 слешей: file://///host/share, см. [1])
File:OOjs UI icon notice-destructive.svg <translate> Warning:</translate> В MediaWiki 1.20.2+, добавление в $wgUrlProtocols протокола "file:" без завершающих слешей ломает встраивание изображений при помощи синтаксиса [[File:Image.jpg]]. Это a известный баг относящийся к изменению, делающему такой URL регистронезависимым. В качестве временного решения, используйте "file://" вместо "file:" как показано ниже.

Что бы разрешить ссылки на локальные файлы (что может иметь смысл в локальной сети), поместите в ваш LocalSettings.php :

$wgUrlProtocols[] = "file://";

Обычно вам требуется добавлять протоколы только в следующий массив:

Значения по умолчанию

<td class="mw-version-versionbox" title="<translate nowrap> The latest stable version is <tvar name=1>1.41</tvar></translate>">
<translate> ≥</translate> 1.38
Gerrit change 876412
<translate> MediaWiki version:</translate>
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.35</tvar> is unsupported version</translate>">
1.35
Gerrit change 876392
<translate> MediaWiki version:</translate>
$wgUrlProtocols = [
	'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://',
	'https://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'matrix:', 'mms://',
	'news:', 'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:',
	'ssh://', 'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:',
	'//',
];
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.37</tvar> is unsupported version</translate>">
1.24 – 1.37
<translate> MediaWiki versions:</translate>
$wgUrlProtocols = [
	'bitcoin:', 'ftp://', 'ftps://', 'geo:', 'git://', 'gopher://', 'http://',
	'https://', 'irc://', 'ircs://', 'magnet:', 'mailto:', 'mms://', 'news:',
	'nntp://', 'redis://', 'sftp://', 'sip:', 'sips:', 'sms:', 'ssh://',
	'svn://', 'tel:', 'telnet://', 'urn:', 'worldwind://', 'xmpp:','slack://', '//', 
];
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.23</tvar> is unsupported version</translate>">
1.22 – 1.23
<translate> MediaWiki versions:</translate>
$wgUrlProtocols = array(
	'http://',
	'https://',
	'ftp://',
	'ftps://', // If we allow ftp:// we should allow the secure version.
	'ssh://',
	'sftp://', // SFTP > FTP
	'irc://',
	'ircs://', // @bug 28503
	'xmpp:', // Another open communication protocol
	'sip:',
	'sips:',
	'gopher://',
	'telnet://', // Well if we're going to support the above.. -ævar
	'nntp://', // @bug 3808 RFC 1738
	'worldwind://',
	'mailto:',
	'tel:', // If we can make emails linkable, why not phone numbers?
	'sms:', // Likewise this is standardized too
	'news:',
	'svn://',
	'git://',
	'mms://',
	'bitcoin:', // Even registerProtocolHandler whitelists this along with mailto:
	'magnet:', // No reason to reject torrents over magnet: when they're allowed over http://
	'urn:', // Allow URNs to be used in Microdata/RDFa <link ... href="urn:...">s
	'geo:', // urls define geo locations, they're useful in Microdata/RDFa and for coordinates
	'//', // for protocol-relative URLs
);
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.21</tvar> is unsupported version</translate>">
1.18 – 1.21
<translate> MediaWiki versions:</translate>
$wgUrlProtocols = array(
	'http://',
	'https://',
	'ftp://',
	'irc://',
	'ircs://', // @bug 28503
	'gopher://',
	'telnet://', // Well if we're going to support the above.. -ævar
	'nntp://', // @bug 3808 RFC 1738
	'worldwind://',
	'mailto:',
	'news:',
	'svn://',
	'git://',
	'mms://',
	'//', // for protocol-relative URLs
);
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.17</tvar> is unsupported version</translate>">
1.17
Версия MediaWiki:
$wgUrlProtocols = array(
	'http://',
	'https://',
	'ftp://',
	'irc://',
	'gopher://',
	'telnet://', // Well if we're going to support the above.. -ævar
	'nntp://', // @bug 3808 RFC 1738
	'worldwind://',
	'mailto:',
	'news:',
	'svn://',
	'git://',
	'mms://',
);
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.16</tvar> is unsupported version</translate>">
1.15 – 1.16
<translate> MediaWiki versions:</translate>
$wgUrlProtocols = array(
	'http://',
	'https://',
	'ftp://',
	'irc://',
	'gopher://',
	'telnet://', // Well if we're going to support the above.. -ævar
	'nntp://', // @bug 3808 RFC 1738
	'worldwind://',
	'mailto:',
	'news:',
	'svn://',
);
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.14</tvar> is unsupported version</translate>">
1.6 – 1.14
<translate> MediaWiki versions:</translate>
$wgUrlProtocols = array(
	'http://',
	'https://',
	'ftp://',
	'irc://',
	'gopher://',
	'telnet://', // Well if we're going to support the above.. -ævar
	'nntp://', // @bug 3808 RFC 1738
	'worldwind://',
	'mailto:',
	'news:'
);
<td class="mw-version-versionbox" title="<translate nowrap> MediaWiki <tvar name=1>1.5</tvar> is unsupported version</translate>">
1.5
Версия MediaWiki:
$wgUrlProtocols = 'http:\/\/|https:\/\/|ftp:\/\/|irc:\/\/|gopher:\/\/|news:|mailto:';

Расширенная настройка

Все протоколы объявленные по-умолчанию должны быть безопасны для перехода по клику (без проблемных побочных эффектов), а удаление протокола из списка вызовет невозможность распознать URL, использующих этот протокол, во многих местах программы. На практике, удаление 'http://' или другого протокола общего пользования может сломать огромное количество вещей. В любом случае, если вам нужно это сделать (например, вы уже добавили пространство имён News:), вы можете сделать как-то так:

$wgUrlProtocols = array_diff($wgUrlProtocols, array('news:'));


См. также