URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7814
[ Назад ]

Исходное сообщение
"Подмена css для 1С"

Отправлено k06a , 03-Дек-13 14:33 
Доброго времени суток уважаемые профи сего раздела!
Ситуация:
Есть Apache 2.2 На Windows Server 2003
Есть 1C 8.2 с опубликованным вебклиентом через вышеуказанный апач.
в httpd.conf есть две строки, которые подключают "модуль 1С" и указывают на дефолтный путь к базе:
LoadModule _1cws_module "C:/Program Files/1cv82/8.2.19.68/bin/wsap22.dll"

и

# 1c publication
Alias "/1C" "C:/1C/"
<Directory "C:/1C/">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C/default.vrd"
</Directory>

При обращении к странице http://1.1.1.1:8888/1C/ru_RU/ браузером "подхватывается" CSS, что видно от сюда:
<head>
...
<link href="webclient.css?sysver=8.2.19.68" rel="stylesheet" type="text/css">
...
</head>
соответственно при запросе по адресу:
http://1.1.1.1:8888/1C/ru_RU/webclient.css появляется тот самый файл CSS.

НО ТАКОГО ФАЙЛА НЕТ В ФАЙЛОВОЙ СИСТЕМЕ.

Я попробовал отследить куда обращается апач при запросе к этому файлу. FileMon показал:

httpd.exe:1176    DIRECTORY    C:\1C\ru_RU\    NO SUCH FILE    FileBothDirectoryInformation: webclient.css    
httpd.exe:1176    OPEN    C:\1C\ru_RU\webclient.css    NOT FOUND    Options: Open  Access: 00100080    
httpd.exe:1176    QUERY INFORMATION    C:\1C\ru_RU\webclient.css    NOT FOUND    Attributes: Error    

После чего я предварительно скачав его "положил" в ту самую директорию  и полный путь к файлу начал быть таков: C:\1C\ru_RU\webclient.css. Казалось-бы - Успех, но не тут-то было.

Конечно ту CSS, которую я положил в каталог, я немножко подправил для контроля (в комментах изменил 1 букву). При обращении к этому файлу "браузером" файл подгружается в "оригинальном варианте" а в логах FileMon стала появляться ошибка:

httpd.exe:1176    OPEN    C:\1C\ru_RU\    SUCCESS    Options: Open Directory  Access: 00100001    
httpd.exe:1176    DIRECTORY    C:\1C\ru_RU\    SUCCESS    FileBothDirectoryInformation: webclient.css    
httpd.exe:1176    CLOSE    C:\1C\ru_RU\    SUCCESS        
httpd.exe:1176    OPEN    C:\1C\ru_RU\webclient.css    SUCCESS    Options: Open  Access: 00100080    
httpd.exe:1176    QUERY INFORMATION    C:\1C\ru_RU\webclient.css    SUCCESS    FileFsVolumeInformation    
httpd.exe:1176    QUERY INFORMATION    C:\1C\ru_RU\webclient.css    BUFFER OVERFLOW    FileAllInformation    
httpd.exe:1176    CLOSE    C:\1C\ru_RU\webclient.css    SUCCESS

Вопрос: Могу ли я apache'у каким-либо образом явно указать что при обращении по адресу http://1.1.1.1:8888/1C/ru_RU/webclient.css он брал именно тот файл который мне нужно?

Заранее спасибо за ответ. с Уважением!


Содержание

Сообщения в этом обсуждении
"Подмена css для 1С"
Отправлено AndreySan , 03-Дек-13 17:21 
Посмотри RewriteRule
Где-то приблизительно надо сделать так, но могу ошибаться, тк под Windows apache не
использовал

Alias "/1C" "C:/1C/"
<Directory "C:/1C/">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C/default.vrd"

   RewriteEngine On
   RewriteRule ^/ru_RU/webclient.css$ /1C/ru_RU/mystyles.css

</Directory>


"Подмена css для 1С"
Отправлено k06a , 03-Дек-13 19:41 
>[оверквотинг удален]
> <Directory "C:/1C/">
>     AllowOverride All
>     Options None
>     Order allow,deny
>     Allow from all
>     SetHandler 1c-application
>     ManagedApplicationDescriptor "C:/1C/default.vrd"
>    RewriteEngine On
>    RewriteRule ^/ru_RU/webclient.css$ /1C/ru_RU/mystyles.css
> </Directory>

Решилось всё использованием Redirect в .htaccess в каталоге сайта, спасибо! :)