Ссылки «file: //» работают на одном сайте WordPress, но не на другом. Оба работают на одном сервере

1963
Randy

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

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

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

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

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

file://servername/sharefolder$/sub1/sub2/sub3 
0
Можете ли вы привести пример ссылки, которая работает на одном сайте, но не на другом? (Вставив обе ссылки здесь для сравнения, с заменой любых частных путей) AmadeusDrZaius 9 лет назад 2
Конечно, извиняюсь за то, что не включил это. its: file: // имя_сервера / sharefolder $ / sub1 / sub2 / sub3 Randy 9 лет назад 0
Рэнди, комментарии не подходят для таких деталей. Я отредактировал ваш вопрос, чтобы добавить пример, но вы всегда должны отмечать, что спрашивает кто-то в комментариях, а затем редактировать ваш вопрос, чтобы предоставить подробности. Причина в том, что комментарии - это то, на что люди читают и на что обращают внимание; комментарии небольшие и одноразовые по определенной причине. JakeGould 9 лет назад 0

1 ответ на вопрос

0
JakeGould

Не зная полного пути - или какого-либо псевдо-примера пути, где вы кастрируете специфику конфиденциальности - трудно сказать, в чем проблема. Но в целом схема 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' ) 
Спасибо за это, Джейк, но я только что попробовал, и это не решило проблему. Я добавил пример ссылки, которая работает на другом сайте, в ответ на комментарий выше. Randy 9 лет назад 0