Не работают SSI включения

Главные вкладки

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 10:00

Добрый день!
Подскажите, пожалуйста, в чем может быть проблема.
Примитивный html документ протестирован - ssi включения срабатывают (думается, настройки сервера выполнены правильно (ssi расширения: "html shtml")), а вот когда < !--#include file="ssi/test.html"-- > добавляю в друпал (в тело ноды или блок), ничего не происходит, вставки нет.
По теме ничего не нашел, подскажите, что не так? Спасибо!

Комментарии

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 11:27

сначала думал с путями какая заморока, но нет, видимо ssi вообще не обрабатывается: < !--#echo var="HTTP_HOST"-- > тоже не работает.
тут назрел такой вопрос, сайт на друпале запускается через index.php, значит ли это что ssi в данном случае вообще не будет отрабатываться, потому что ssi расширения: "html shtml".
в общем начитался всякого, а понять что не так не получается.
Спасибо за помощь!

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 14:00

Спасибо, Chyvakoff
к сожалению, с форматом все ок: fullhtml и визивик переключен на plain text.
код страницы посмотрел, в нем все ок... настоящий html комментарий < !--#include file="ssi/test.html"-- > (только без пробелов)
проблема где-то еще...

я не совсем улавливаю, в какой момент происходит ssi включение...
когда мы запрашиваем например mysite.ru/page.html веб сервер не находит такую страницу и дергает друпал, а точнее index.php, друпал что-то отдает веб-серверу (результат в формате html) и это что-то веб-сервер отдает пользователю как mysite.ru/page.html... в какой момент веб-сервер будет делать ssi включение?
в общем чего-то не хватает...

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 14:17

вопрос еще и в другом
1) урл mysite.ru/page.html может быть любым и не обязательно будет иметь расширение html, поэтому если веб-сервер делает ssi включение перед тем как отдать результат пользователю, то включения вообще не будет если урл, например, без расширения.
2) веб-сервер запускает index.php и логично, что его и получает от друпала, а значит не будет делать никаких ssi включений, так как файл имеет расширение php
3) если в ssi расширения добавить кроме html, shtml добавить еще и php, то все ломается вообще, браузер не отображает mysite.ru/page.html, а предлагает сохранить файл

кто понимает, как это все происходит, плз, подскажите, убежден, тут простое решение, просто я не готов его найти.
Спасибо!

Аватар пользователя Chyvakoff Chyvakoff 16 августа 2013 в 15:00

Попробуй создать в корне папку, например ssi. В неё складывай свои файлы,которые надо заинклудить.
В корне в .htaccess допиши

  RewriteCond %{REQUEST_URI} "^/ssi/"
  RewriteRule (.*) $1 [L]
Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 15:54

"Chyvakoff" wrote:
Попробуй создать в корне папку, например ssi. В неё складывай свои файлы,которые надо заинклудить.
В корне в .htaccess допиши

сделал, не работает, но я не удивлен, как уже было замечено ранее не работает также < !--#echo var="HTTP_HOST"-- >
в примитивном index.html все работает правильно...

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 15:58

"RxB" wrote:
А они должны в eval() работать?

Не совсем понимаю, о каком eval() идет речь...
сейчас мне нужно добиться чтобы ssi заработал (сложную для меня задачу разбил на отдельные части), потом будут cgi скрипты еще подключать, но пока не представляю с чем еще буду сталкиваться... здесь все мне неизвестно...

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 16:11

ssi включения, вообще должны работать с друпалом, тут каких-нибудь несовместимостей/невозможностей нет?
тема эта как-то мало освещена, складывается впечатление, что я иду не тем путем, но мне представляется ssi полезным инструментом

Аватар пользователя aleks_84 aleks_84 16 августа 2013 в 16:14

Да, вы идёте не тем путём. SSI будут работать только в html/shtml документах, а у вас запрашивается php. Да и не нужны вам SSI. Если хотите что-то вставить - используйте функции PHP и не смешивайте сапоги с пирогами (с)

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 16:15

"RxB" wrote:
От этого и беда, что лепите не зная, что лепите

В связи с этим я и задаю вопросы, чтобы узнать... если бы я все знал, я бы не спрашивал а все уже сделал.
Если способны и считаете возможным помочь, помогите, буду сильно признателен, а если воспитывать меня желаете, то, пожалуйста, не надо.
Спасибо!

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 16:21

"aleks_84" wrote:
используйте функции PHP и не смешивайте сапоги с пирогами

вот, спасибо, по делу...
может вы меня просветите, тогда в конкретной проблеме...

на сайте включен кэш, а нужно несколько вставок разных для каждого пользователя, как этого добиться?
если отключить кэш, то я смогу сделать все что угодно, но вот кэш отключать не хочется, ни целиком, ни для блоков. и так все медленно...
Спасибо!

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 16:37

"aleks_84" wrote:
советую посмотреть в сторону Ajax'а...

ajax я уже рассмотрел и не нахожу его таким уж хорошим, как неоднократно советовалось. смотрите сами
1 браузер запрашивает страницу
2 сервер отдает страницу
3 браузер принимает страницу и делает повторные запросЫ (их не один)
4 сервер отдает какие-то данные
5 страница собралась в браузере

Обращаю внимание, что шаги начиная с 3-го это, по моему мнению, корявая реализация ajax-ом.
Меня так не устраивает.

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 17:10

js главным образом, но они различные в зависимости от разных условий,
если просто, то в одном блоке (но не только в блоке) для разных пользователей будет разная информация.

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 17:24

Ну а вообще вопрос все же в том, можно ли заставить работать ssi в друпале, идея мне симпатична, мне кажется ssi будет полезен в любом случае... ajax - это хорошо, но все же, мне кажется, ajax предполагает участие пользователя, а где нет явных запросов от пользователя там не нужен и ajax. поправьте если я не правильно понимаю ситуацию и ajax эффективней. Спасибо!

Аватар пользователя drupby drupby 16 августа 2013 в 17:35

"mg.bsv" wrote:
ajax я уже рассмотрел и не нахожу его таким уж хорошим, как неоднократно советовалось. смотрите сами
1 браузер запрашивает страницу
2 сервер отдает страницу
3 браузер принимает страницу и делает повторные запросЫ (их не один)
4 сервер отдает какие-то данные
5 страница собралась в браузере

какой то неправильный у вас аякс

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 17:39

"drupby" wrote:
какой то неправильный у вас аякс

поясните, плз, какой он на самом деле, а то может действительно я ошибаюсь...

Аватар пользователя drupby drupby 16 августа 2013 в 17:46

"mg.bsv" wrote:
поясните, плз, какой он на самом деле, а то может действительно я ошибаюсь...

ajax послает данные скрипту ,он их обрабатывает и возвращает данные(либо html либо json объект)
функция success аякса принимает эти данные и делает все что вам угодно(к примеру получает необходимое значение блока и заменяет средствами jquery существующее значение блока )

Аватар пользователя mg.bsv mg.bsv 16 августа 2013 в 18:50

я правда не силен в ajax и js и иже с ними, но jquery (js) выполняется не веб-сервером, а браузером, следовательно все выполняется на стороне клиента, а значит те 5 шагов которые я описал выше справедливы, да ajax отрабатывает на сервере, но это не меняет суть...
или я все еще ошибаюсь?

Аватар пользователя aleks_84 aleks_84 16 августа 2013 в 22:19

Дело в том, что кэш+ajax догрузка как правило быстрее чем заново сгенерённая страница. Кроме того, зачем делать несколько запросов, когда можно собрать всё в один? Хотя для этого, конечно, понадобится знание js, jQuery и Drupal JS API

Аватар пользователя mg.bsv mg.bsv 17 августа 2013 в 7:43

"aleks_84" wrote:
Дело в том, что кэш+ajax догрузка как правило быстрее чем заново сгенерённая страница.

Думаю, я понимаю как это происходит (я не владею инструментом, но в общих чертах представляю как это работает)...
Дело в том, когда речь идет о ajax сайтах (просмотр сайта без полной перезагрузки), такой подход вполне оправдан, но пользоваться ajax, потому что я не могу сделать правильно, я не хочу...
Возможно, в дальнейшем я осознаю, что ajax проще и эффективней, а ssi это глупость, но сейчас я все еще хочу разобраться с ssi. И главным образом меня интересует можно ли все же использовать ssi включения в друпале. Пожалуйста, помогите с ssi в друпале, ajax обсудим в другой теме.
Спасибо всем участникам!

Аватар пользователя marazmus marazmus 17 августа 2013 в 9:28

Спрошу чисто ради интереса, а зачем вообще SSI? Наследие предыдущего сайта, которое пока невозможно выпилить и заменить друпалом?

А так по пути гляньте код модуля вот этого: https://drupal.org/project/ssi
Может там найдете способ инклюда работающий...

Аватар пользователя mg.bsv mg.bsv 17 августа 2013 в 11:51

"marazmus" wrote:
А так по пути гляньте код модуля вот этого: https://drupal.org/project/ssi[/quote]
Спасибо, marazmus, этот модуль я конечно же знаю, он предназначен чтобы делать ssi включения из друпала, но в сторонних (не друпайловских) страницах (по умолчанию .shtml), так я могу делать...
"marazmus" wrote:
чисто ради интереса, а зачем вообще SSI?

нет не наследие, я нахожу такой прием удобным и эффективным...

Аватар пользователя mg.bsv mg.bsv 17 августа 2013 в 11:56

Вопрос не решился, к сожалению...
Видимо, нужно идти на форум к администраторам серверов... В настоящий момент сделать по другому мне не нужно, мне нужно понять можно ли сделать через ssi.
Всем спасибо!

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 17 августа 2013 в 13:45

"mg.bsv" wrote:
Видимо, нужно идти на форум к администраторам серверов... В настоящий момент сделать по другому мне не нужно, мне нужно понять можно ли сделать через ssi.

Более понятно пишу - не сделаешь.
Более распространённо - уже объяснили, что это через задницу

Аватар пользователя mg.bsv mg.bsv 17 августа 2013 в 14:41

"RxB" wrote:
Более понятно пишу - не сделаешь.

Понятно - это когда аргументировано, а ваше утверждение пустое. И я не склонен доверять беспардонным людям вроде вас.
"RxB" wrote:
Более распространённо - уже объяснили, что это через задницу

Если объяснениями вы называете советы использовать ajax, то с этим не соглашусь... В чем ssi решение "через задницу"?! если представить, что ssi заработало, то я бы решил все свои задачи очень просто, а вот ajax такой простоты не дает и по производительности однозначно уступит.

И да, RxB, я не приемлю вольного стиля общения, если хотите что-то сказать, скажите это с уважением ко мне и аргументировано, иначе ничего не говорите. Когда вы в своей профиле указываете "Помощь пользователям на форумах" вы имеет ввиду такую помощь:

"RxB" wrote:
это через задницу
Полезно! Профессионально! Доступно!

Аватар пользователя multpix multpix 17 августа 2013 в 15:09

"mg.bsv" wrote:
если хотите что-то сказать, скажите это с уважением ко мне

его еще надо заработать
по умолчанию - уважительное отношение, но!
его ты растерял сам, опубликовав свои посты.
ибо писать умными словами чушь, обижаясь на то что тебе говорят - да это чушь- позор!

по теме:
с твоим подходом - drupal не нужен в принципе.
приводить аргументы - недосуг - ибо здесь не ясли.
не понимаешь самостоятельно, подтяни матчасть - звучит банально, но это единственное что будет полезно.

p.s.
зачем нам на техническом форуме этот бред?
популярным стало нагнать с три короба,
а потом ныть что в куче мусора не найти полезного...
посему, или выровняйся, или буду запрашивать о перемещении в курилку/мусор.

Аватар пользователя marazmus marazmus 17 августа 2013 в 20:13

Цитата с форума сапы:

Мой сайт использует SSI и файлы *.shtml. Как мне разместить код?
В этом случае, код вызова SAPE необходимо записать в файл sape1.php (его можно создать через блокнот) и закачать этот файл в корень сайта.
Далее, на каждой странице сайта необходимо прописать строку:

<!--#include virtual="/sape1.php" -->

Попробуйте, может поможет.

UPD: Еще здесь вполне успешно включают SSI в свой код разработчики форума SMF: http://docs.simplemachines.org/index.php?topic=400.0

Аватар пользователя Chyvakoff Chyvakoff 19 августа 2013 в 10:00

"mg.bsv" wrote:
нет не наследие, я нахожу такой прием удобным и эффективным...

Я думаю, вы просто плохо знаете друпал. Друпальские сайты нечасто используют ssi. По крайней мере на этом форуме никто так не задавался этим вопросом.

Аватар пользователя mg.bsv mg.bsv 19 августа 2013 в 16:32

Видимо, или горшочек, или дудочка... В общем, как утверждают источники, которые я обнаружил, ssi и php - два разных и несовместимых обработчика... Нужно обдумать. Всем спасибо!

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 19 августа 2013 в 18:55

"mg.bsv" wrote:
Видимо, или горшочек, или дудочка... В общем, как утверждают источники, которые я обнаружил, ssi и php - два разных и несовместимых обработчика... Нужно обдумать. Всем спасибо!

Всего 3 дня ушло на убеждение