Apache 2 vs IE7+MSO12

По производственной необходимости пришлось соорудить скрипт на перле, генерирующий CSV файл и отдающий его через браузер пользователю. Поскольку доступ к этому скрипту должен быть не у всех, огородил директорию со скриптом файликами .htaccess и .htpasswd, прописав туда пользователй и их пароли. Проверил, работает.



Но тут началось малопонятное. Если обратиться к этому скрипту из Internet Explorer 7 то он спрашивает логин и пароль, потом что делать с файлом, а потом, если выбрать “Открыть”, то снова запрашивается пароль. Вот второй запрос пароля не понравился заказчику.

Ковыряние в логах показало, что вместо того, чтобы сказыть файл во временную директорию и от туда открыть его в Excel, эта зараза запускала Excel, передав ему в качестве имени открываемого файла ссылку на web-ресурс. А что, 2007-й офис умеет открывать файлы из интернета. А офисный движок опять запрашивал пароль на доступ.

Кафедра экономики

Вылечилось это добавлением нескольких строк в описание директории

 ScriptAlias /dir/ /usr/local/dir/
 <Directory "/usr/local/dir">
 <Limit GET POST>
  Order allow,deny
  Allow from all
 </Limit>
 <LimitExcept GET POST>
  Order deny,allow
  Deny from all
 </LimitExcept>
 AuthType .htaccess
AllowOverride Authconfig
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

Потому как офис генерит не GET или POST запрос, а OPTIONS и HEAD

В результате офисный движок обламывается скачать файл и просит сделать это IEшку. А там сессия уже открыта.



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>