Наши пользователи пытаются вставлять ссылки на наш сайт http://www.newsfixed.com/ в документах Word, и они не работают. Word для Mac очень чувствителен к конфигурации сервера и иногда не может загрузить определенные ссылки. Та же проблема, похоже, происходит со ссылками на http://www.facebook.com/ и http://www.pinterest.com/ (но ссылки на google, twitter, instagram и т. д. в порядке)
Действия по воспроизведению:
Введите в документ следующие URL-адреса и позвольте Word превратить их в гиперссылки:
http://www.google.com/
http://www.facebook.com/
http://www.theguardian.com/
http://www.nytimes.com/
http://www.pinterest.com/
http://www.instagram.com/
http://www.twitter.com/
Нажмите на ссылки - вы увидите, что Google, Guardian, New York Times, Instagram и Twitter будут работать, а Facebook и Pinterest (и мой сайт www.newsfixed.com) - нет. Word сообщает об ошибке: «Невозможно открыть http://www.pinterest.com/. Не удается найти Интернет-сервер или прокси-сервер. ":
Это могло быть как-то связано с https://stackoverflow.com/questions/17926225/microsoft-office-hyperlink-issues но я не знаю как!
Глядя на HTTP-ответ pinterest.com, казалось, что это могло быть связано с обслуживанием временного перенаправления 302 на версию HTTPS, а не 301, которое было общим для моего сайта и pinterest. Итак, я изменил конфигурацию сервера и теперь возвращаю 301, но, похоже, это не имеет никакого значения.
У меня старая версия Word для Mac - 12.3.6. У меня были сообщения, что это также происходит в более новых версиях Word (но без номеров версий, извините). По-видимому, это только начало происходить на прошлой неделе, возможно, это как-то связано с установкой SSL и патчами Heartbleed? (Я, конечно, восстановил свой сертификат на этой неделе)
Сервер представляет собой стандартный Apache 2.4 в Ubuntu, на котором запущено приложение Django через mod_wsgi.
Спасибо за любую помощь,
Брендан.
Что ж, мне удалось заставить его работать ...
Похоже, Word не любит мой SSL-сертификат (от RapidSSL / GeoTrust), хотя он проходит все проверки на сайтах проверки SSL (Digicert sslshopper и больше).
Итак, я понял, что мне нужно поймать пользовательский агент Word в моей конфигурации Apache HTTPD:
RewriteEngine On
# catch MS Office clients and send them to an HTTP redirect page
BrowserMatchNoCase (word|excel|powerpoint|ms-office) browser=ms-office
RewriteCond %{ENV:browser} ms-office
RewriteRule ^/(?!ms\-office) http://%{HTTP_HOST}/ms-office?url=%{REQUEST_URI} [R=301,L]
# everyone else can go to the HTTPS site
RewriteCond %{HTTPS} off
RewriteCond %{ENV:browser} !ms-office
RewriteRule ^(?!ms\-office) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ScriptAlias /ms-office /<path>/bin/msoffice-redirect.sh
где "msoffice-redirect.sh" - это простой скрипт Bash CGI (!), выполняющий мета-обновление защищенной страницы:
#!/bin/bash
URL=${QUERY_STRING//url=/}
echo "Content-type: text/html"
echo
echo "<html><head><meta http-equiv='refresh' content='0;url=https://www.newsfixed.com${URL}'/></head><body></body></html>"
Итак, поток такой:
Да это полный взлом. Я чувствую себя грязным. Но это работает. Все ссылки в документах Word должны быть http: //, хотя ссылки https: // не работают, но, по крайней мере, сейчас мы можем включить некоторые ссылки в наши документы Word.
Я был вдохновлен приложение Ruby "исправить ссылки Microsoft" который делает то же самое на сервере Ruby.
Надеюсь, это поможет кому-нибудь избежать боли, которую я пережил в эти выходные!