У меня есть 2 разных сайта WordPress на одном сервере. Оба они содержат ссылки на файлы в нашей внутренней сети, которые связаны с использованием протокола file:// .

Вот проблема: На одном из сайтов file:// ссылки отлично работают в Internet Explorer; Я нажимаю на ссылку, и местоположение папки открывается в новом окне. Однако на другом сайте, когда я нажимаю на file:// , ничего не происходит. Что я могу сделать, чтобы это работало на обоих сайтах?

Сайт с работающими ссылками на файл использует WordPress версии 3.2.1

Сайт с нерабочими файловыми ссылками использует версию 3.5.1

Вот пример file:// ссылка, с которой у меня возникла эта проблема:

file://servername/sharefolder$/sub1/sub2/sub3

1 ответ1

0

Не зная полного пути - или какого-либо псевдо-примера пути, где вы кастрируете специфику конфиденциальности - трудно сказать, в чем проблема. Но в целом схема file:// URI (унифицированный идентификатор ресурса) требует имени хоста. И если к file:// URI не подключен хост, должно быть три слеша (///), а не два (//).

Так, например, если вы хотите получить доступ к файлу с путем /hey/there/file в настройке localhost , URL-адрес может быть следующим:

file://localhost/hey/there/file

Или может быть это:

file:///hey/there/file

Но также может быть проблема с тем, как WordPress 3.5.1 обрабатывает file:// URI по сравнению с тем, как WordPress 3.2.1 будет его обрабатывать. Этот небольшой кусок кода на GitHubGist (из «rosshanney», кажется, решает проблему путем создания простого метода плагина, позволяющего file быть частью ядра kses_allowed_protocols в WordPress:

<?php
/*
Plugin name: Allow file protocol
*/

function rh_allow_file_protocol( $protocols ) {
    $protocols[] = 'file';
    return $protocols;
}

add_filter( 'kses_allowed_protocols', 'rh_allow_file_protocol' )

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .