Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Что еще можно придумать без извращений, чтоб файлы были доступны самому апачу для SSI, но недоступны для получения по прямому запросу?
Бросай курить вставай на лыжи (ну, метафорически) В лес этот SSI, попробуй Astro (статический генератор) — оно рулит. SSI в него должен конвертироваться на раз-два.
Re[2]: Запретить через .htaccess отдачу определенных файлов
Здравствуйте, bnk, Вы писали:
bnk>попробуй Astro (статический генератор) — оно рулит.
Вот только открыл сайт, и сразу поперло отторжение. Заглавная страница сделана откровенно претенциозно, в стиле "как вы до сих пор жили без нашего чудо-продукта?". Ни слова о том, какое место занимает чудо-продукт в экосистеме. Такое делается главным образом для дебилов примитивных виндузятников и макосников. Однако, в Get Started приведены командные строки для терминала — они для кого? Если для технаря-админа, то для кого заглавная страница? Если для тупого юзера, то что он будет с ними делать?
Полазив по сайту, так и не понял, куда там лошадь запрягать в каких ОС его можно использовать, и как именно это сделать, кроме как ввести волшебную команду.
Оно только для тех, у кого собственный сервер? Или я могу поставить это чудо на shared?
bnk>SSI в него должен конвертироваться на раз-два.
Да мне б и SSI хватило за глаза, если б его нечеловеческие технологии. Стандартное оформление через <!-- и --> невозможно использовать внутри тэгов — HTML-редакторы обижаются, и исправляют этот ужас, как могут. А SSIStartTag/SSIEndTag доступны только в глобальной конфигурации, в .htaccess они не поддерживаются. Чем думали люди из команды Apache, когда все это городили — не представляю.
Re[3]: Запретить через .htaccess отдачу определенных файлов
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Вот только открыл сайт, и сразу поперло отторжение. Заглавная страница сделана откровенно претенциозно, в стиле "как вы до сих пор жили без нашего чудо-продукта?". Ни слова о том, какое место занимает чудо-продукт в экосистеме. Такое делается главным образом для дебилов примитивных виндузятников и макосников. Однако, в Get Started приведены командные строки для терминала — они для кого? Если для технаря-админа, то для кого заглавная страница? Если для тупого юзера, то что он будет с ними делать? ЕМ>Полазив по сайту, так и не понял, куда там лошадь запрягать в каких ОС его можно использовать, и как именно это сделать, кроме как ввести волшебную команду. ЕМ>Оно только для тех, у кого собственный сервер? Или я могу поставить это чудо на shared?
Ну вот вечно ты так, требуешь к себе человеческого отношения
Это генератор статического сайта. Можно хостить где угодно, хоть на гитхабе забесплатно.
Если будет время попробую написать как это использовать, типа руководства для динозавров, настолько проникся
bnk>>SSI в него должен конвертироваться на раз-два.
ЕМ>Да мне б и SSI хватило за глаза, если б его нечеловеческие технологии. Стандартное оформление через <!-- и --> невозможно использовать внутри тэгов — HTML-редакторы обижаются, и исправляют этот ужас, как могут. А SSIStartTag/SSIEndTag доступны только в глобальной конфигурации, в .htaccess они не поддерживаются. Чем думали люди из команды Apache, когда все это городили — не представляю.
Ну да, про что и речь. В astro делается блоками (island)
header.html
HEADER
footer.html
FOOTER
content.md (markdown для примера, оно import много чего умеет)
Здравствуйте, bnk, Вы писали:
bnk>Ну вот вечно ты так, требуешь к себе человеческого отношения
— Как называется мужчина, который может, но не хочет?
— Сволочь он! Сволочь!
bnk>Можно хостить где угодно
"Где угодно" — это включая калькуляторы и смарт-часы? Под виндой работать может?
И он должен работать там же, где будет лежать сайт, или может просто создавать дерево каталогов, которое затем можно закачать на сервер?
bnk>Если будет время попробую написать как это использовать, типа руководства для динозавров
А что ж сами разработчики не напишут?
bnk>index.astro (конвертируется в index.html)
А брать исходники в HTML, и подставлять туда значения, определенные в конфигурации, оно умеет? Писать все в MarkDown как-то не хочется.
Re[5]: Запретить через .htaccess отдачу определенных файлов
Здравствуйте, Евгений Музыченко, Вы писали:
bnk>>Можно хостить где угодно
ЕМ>"Где угодно" — это включая калькуляторы и смарт-часы? Под виндой работать может? ЕМ>И он должен работать там же, где будет лежать сайт, или может просто создавать дерево каталогов, которое затем можно закачать на сервер?
Конечно. Там по сути нечему "работать", на выходе получаешь просто каталог "dist" с HTML файлами, который надо закачать на сервер. Это же и есть суть статической генерации.
Ну опционально еще кроме html там может быть javascript, если он где-то используется. Ну и файлы которые ты сам туда положил (любого типа)
ЕМ>А брать исходники в HTML, и подставлять туда значения, определенные в конфигурации, оно умеет?
Да, умеет. Самое простое это расширение .html изменить на .asto чтобы файл обрабатывался
Например если из переменной окружения, то примерно так как ниже.
Можно и свой код влепить любой в принципе, который будет выполняться во время компиляции сайта (ну, чтобы получить эту "конфигурацию", если это что-то специфическое)
Код в HTML не включится (все что между "----" обрабатывается во время компиляции)
Да, для редактирования (ну чтобы автокомплит был и прочие приятности) я VS Code использую, там есть специализированное расширение.
А вообще есть даже целая CMS, внутри VS Code (но я ее не использую, может в будущем)
И все что выше, это даже близко не основная фишка
Основная для меня — что можно так же как html или md/mdx файлы выше импортировать КОМПОНЕНТЫ (написанные на React, Angular, Vue, etc)
Здравствуйте, bnk, Вы писали:
bnk>Там по сути нечему "работать", на выходе получаешь просто каталог "dist" с HTML файлами, который надо закачать на сервер.
То есть, по сути, это макропроцессор?
А зависимости оно отслеживает? Если в исходниках изменился, скажем, один прототип страницы, или параметры, затрагивающие только часть страниц, он пересоздает только их, или все скопом? Это я к тому, какой объем нужно будет загружать на сервер после каждой модификации.
Ну и под виндой (без WSL) его запустить можно?
bnk>можно так же как html или md/mdx файлы выше импортировать КОМПОНЕНТЫ (написанные на React, Angular, Vue, etc)
Мне это пока не актуально.
Re[7]: Запретить через .htaccess отдачу определенных файлов
Здравствуйте, Евгений Музыченко, Вы писали:
bnk>>Там по сути нечему "работать", на выходе получаешь просто каталог "dist" с HTML файлами, который надо закачать на сервер.
ЕМ>То есть, по сути, это макропроцессор?
Да, можно и так обозвать
ЕМ>А зависимости оно отслеживает? Если в исходниках изменился, скажем, один прототип страницы, или параметры, затрагивающие только часть страниц, он пересоздает только их, или все скопом? Это я к тому, какой объем нужно будет загружать на сервер после каждой модификации.
Все скопом. Т.е. есть явный шаг "компиляция" на котором собственно собирается сайт. Как обычная софтина компилируется.
Чтобы меньше заливать, можно деплоить из GIT репозитория например (но вообще-то откуда там большие объемы, там же HTML файлы — килобайты, не мегабайты?)
ЕМ>Ну и под виндой (без WSL) его запустить можно?
Конечно. Просто открываешь папку в VS Code и вперед. Но командная строка все же нужна (чтобы запустить компиляцию, например).
Ну или чтобы предпросмотр сделать без деплоймента на сервер (локально оно имеет встроенный веб-сервер для предварительного просмотра)
npm run dev / npm run build / npm run preview
Да, NodeJS понятно должна быть (чтобы "npm" работало)
ЕМ>Мне это пока не актуально.
Ну там и другие фишки есть. Например "макрос с параметрами".
Можно сделать повторно используемый блок, и вызывать его с разными параметрами (ну карточка продукта например)
Здравствуйте, bnk, Вы писали:
bnk>Для PHP требуется (платный) сервер.
Э-э-э... Чем не годится тот сервер, на котором лежит сайт?
bnk>И он тормозной.
Насколько, кстати, тормозной, если не увлекаться запросами к БД и сложной обработкой текстов?
bnk>PHP не нужен, это каменный век.
Я бы не сказал, что полная статическая перегенерация сайта чем-то "современнее" PHP. Это ж как в традиционной программе, вместо выноса литеральных констант в заголовки, и именования их, выносить эти константы в отдельные файлы, и использовать внешние средства для вставки их опять-таки в литеральной форме. Да, может быть удобно, но технически это ужасно.
Re[5]: Запретить через .htaccess отдачу определенных файлов
Здравствуйте, Евгений Музыченко, Вы писали:
bnk>>Для PHP требуется (платный) сервер.
ЕМ>Э-э-э... Чем не годится тот сервер, на котором лежит сайт?
Фактом своего существования
Для статических сайтов полно платформ, которые могут хостить такой контент забесплатно, на заданном доменном имени, с CDN, те же GitHub Pages, Cloudflare, Azure Static Website.
bnk>>И он тормозной.
ЕМ>Насколько, кстати, тормозной, если не увлекаться запросами к БД и сложной обработкой текстов?
Ну он всяко медленнее чем просто отдача HTML.
bnk>>PHP не нужен, это каменный век.
ЕМ>Я бы не сказал, что полная статическая перегенерация сайта чем-то "современнее" PHP. Это ж как в традиционной программе, вместо выноса литеральных констант в заголовки, и именования их, выносить эти константы в отдельные файлы, и использовать внешние средства для вставки их опять-таки в литеральной форме. Да, может быть удобно, но технически это ужасно.
IMHO это супер-современное решение для фронтенда на данный момент, круче просто ничего нет
Там же не обязательно делать файлами, можно и программными модулями. Т.е. import можно например и на тайпскриптовые модули делать (получая типизированный импорт с автокомплитом и всеми плюсами проверок времени компиляции), а вовсе не куски HTML. Куски HTML я привел как прямую замену SSI.
Одна гидрация практически любых компонентов (т.е. добавление интерактивности только на фронтенде) чего стоит
Здравствуйте, TailWind, Вы писали:
TW>Allow from env=MY_VALUE
Тогда уж было бы проще через <IfDefine>, ибо SSI может и не использоваться в некоторых страницах.
TW>Есть там в этом SSI возможность переменные среды устанавливать
Есть, но только внутри себя (чтоб потом их подставлять).
Re[4]: Запретить через .htaccess отдачу определенных файлов
Все тайные скрипты в отдельный каталог типа "inc"
Туда .htaccess с deny from all
php из таких каталогов спокойно читает инклюды
Раз хочешь на ssi, то главная страница в открытом доступе. Там переменную и взводи
Но это все равно изврат
Я делаю так: в каталог (путь) где должна быть страница кладу файл _html
В корне сайта .htaccess редиректит, если такой файл есть в каталоге на php скрипт, который отображает header, footer сайта и в том месте где должен быть текст страницы вставляет содержимое _html файла (путь передается в качестве параметра при редиректе). В _html файле обычный текст с обычной html разметкой. Картинки можно в тот же каталог положить. Очень удобно
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}/_html -f
RewriteRule ^(([-_\ a-zA-Z0-9]+/)*)$ /inc/php/_html.php?path=$1 [qsa,E=ACCESS_ALLOWED:1]
<Files _html>
Deny from all
</Files>
Здравствуйте, bnk, Вы писали:
bnk>Для статических сайтов полно платформ, которые могут хостить такой контент забесплатно
Так у меня уже есть разделяемый хостинг, и нет планов отказываться от него ради "забесплатно". Тем более, что все это "забесплатно" имеет тенденцию со временем становиться или платным, или ограниченным, или совать посетителям назойливую рекламу. Я за разумные компромиссы.
bnk>Ну он всяко медленнее чем просто отдача HTML.
Так и SSI медленнее за счет дополнительной обработки. Вопрос в том, насколько медленнее. Если это единицы процентов на фоне обычных сетевых задержек, и десятки миллисекунд в общем, то нет смысла стремиться это ускорить.
Re[7]: Запретить через .htaccess отдачу определенных файлов
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Вопрос в том, насколько медленнее. Если это единицы процентов на фоне обычных сетевых задержек, и десятки миллисекунд в общем, то нет смысла стремиться это ускорить.
Для статики тебе будет неразличимо, имхо. Переименовываешь все html в php и используешь <?php include "" ?> где нужно, например.
В принципе, можно не переименовывать, а настроить апач на процессинг html через php.
Здравствуйте, pva, Вы писали:
pva>Для статики тебе будет неразличимо, имхо.
Я тоже так думаю.
pva>используешь <?php include "" ?>
С ними та же проблема, что и с SSI — HTML-редакторы возбуждаются на тэг внутри тэга (тот же URL). В идеале подошло бы что-то вроде ${var}, но искаропки никто не поддерживает.
Re[5]: Запретить через .htaccess отдачу определенных файлов
Здравствуйте, TailWind, Вы писали:
TW>Все тайные скрипты
У меня не тайные, они просто служебные. Даже если кто-то и запросит такой файл напрямую, он увидит только пустые строки — SSI там все съест. Запретить хочу просто для порядка.
TW>в отдельный каталог типа "inc" TW>Туда .htaccess с deny from all TW>php из таких каталогов спокойно читает инклюды
При такой схеме и SSI читает, если при include использовать file, а не virtual. Но мне удобно включать некоторые файлы из родительских каталогов, делая таким образом наследование, а file такого не допускает.
TW>Раз хочешь на ssi, то главная страница в открытом доступе. Там переменную и взводи
Так <IfDefine> таких переменных не видит. Видит только то, что определено в конфигах, да и то лишь админских. Убогая идеология.
TW>Но это все равно изврат
О чем в сфере HTML можно сказать, что оно не изврат?
TW>Я делаю так: в каталог (путь) где должна быть страница кладу файл _html TW>В корне сайта .htaccess редиректит, если такой файл есть в каталоге на php скрипт, который отображает header, footer сайта и в том месте где должен быть текст страницы вставляет содержимое _html файла (путь передается в качестве параметра при редиректе). В _html файле обычный текст с обычной html разметкой.
Поддерживать целостность при модификациях структуры не тяжело?
Re[6]: Запретить через .htaccess отдачу определенных файлов
ЕМ>Но мне удобно включать некоторые файлы из родительских каталогов, делая таким образом наследование
Не очень понимаю зачем это нужно?
Единственное что можно включать это шапочку сайта
Но гораздо удобнее делать наоборот
Из шапочки включать содержимое страницы, а не из страницы включать шапочку