Re: Запретить через .htaccess отдачу определенных файлов
От: bnk СССР http://unmanagedvisio.com/
Дата: 05.11.23 12:01
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Что еще можно придумать без извращений, чтоб файлы были доступны самому апачу для SSI, но недоступны для получения по прямому запросу?


Бросай курить вставай на лыжи (ну, метафорически) В лес этот SSI, попробуй Astro (статический генератор) — оно рулит. SSI в него должен конвертироваться на раз-два.
Re[2]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.11.23 13:22
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>попробуй Astro (статический генератор) — оно рулит.


Вот только открыл сайт, и сразу поперло отторжение. Заглавная страница сделана откровенно претенциозно, в стиле "как вы до сих пор жили без нашего чудо-продукта?". Ни слова о том, какое место занимает чудо-продукт в экосистеме. Такое делается главным образом для дебилов примитивных виндузятников и макосников. Однако, в Get Started приведены командные строки для терминала — они для кого? Если для технаря-админа, то для кого заглавная страница? Если для тупого юзера, то что он будет с ними делать?

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

Оно только для тех, у кого собственный сервер? Или я могу поставить это чудо на shared?

bnk>SSI в него должен конвертироваться на раз-два.


Да мне б и SSI хватило за глаза, если б его нечеловеческие технологии. Стандартное оформление через <!-- и --> невозможно использовать внутри тэгов — HTML-редакторы обижаются, и исправляют этот ужас, как могут. А SSIStartTag/SSIEndTag доступны только в глобальной конфигурации, в .htaccess они не поддерживаются. Чем думали люди из команды Apache, когда все это городили — не представляю.
Re[3]: Запретить через .htaccess отдачу определенных файлов
От: bnk СССР http://unmanagedvisio.com/
Дата: 05.11.23 15:34
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вот только открыл сайт, и сразу поперло отторжение. Заглавная страница сделана откровенно претенциозно, в стиле "как вы до сих пор жили без нашего чудо-продукта?". Ни слова о том, какое место занимает чудо-продукт в экосистеме. Такое делается главным образом для дебилов примитивных виндузятников и макосников. Однако, в Get Started приведены командные строки для терминала — они для кого? Если для технаря-админа, то для кого заглавная страница? Если для тупого юзера, то что он будет с ними делать?

ЕМ>Полазив по сайту, так и не понял, куда там лошадь запрягать в каких ОС его можно использовать, и как именно это сделать, кроме как ввести волшебную команду.
ЕМ>Оно только для тех, у кого собственный сервер? Или я могу поставить это чудо на shared?

Ну вот вечно ты так, требуешь к себе человеческого отношения

Это генератор статического сайта. Можно хостить где угодно, хоть на гитхабе забесплатно.
Если будет время попробую написать как это использовать, типа руководства для динозавров, настолько проникся

bnk>>SSI в него должен конвертироваться на раз-два.


ЕМ>Да мне б и SSI хватило за глаза, если б его нечеловеческие технологии. Стандартное оформление через <!-- и --> невозможно использовать внутри тэгов — HTML-редакторы обижаются, и исправляют этот ужас, как могут. А SSIStartTag/SSIEndTag доступны только в глобальной конфигурации, в .htaccess они не поддерживаются. Чем думали люди из команды Apache, когда все это городили — не представляю.


Ну да, про что и речь. В astro делается блоками (island)

header.html
HEADER


footer.html
FOOTER


content.md (markdown для примера, оно import много чего умеет)
**MARKDOWN** content


index.astro (конвертируется в index.html)
---
import Header from "./header.html";
import Footer from "./footer.html";
import Content from "./content.md";
---

<!doctype html>
<html lang="en">
  <head>
    <title>My page</title>
  </head>
  <body>

    <Header />

    <h1>HELLO WORLD</h1>

    <Content />

    <Footer />

  </body>
</html>
Отредактировано 05.11.2023 15:45 bnk . Предыдущая версия . Еще …
Отредактировано 05.11.2023 15:40 bnk . Предыдущая версия .
Отредактировано 05.11.2023 15:35 bnk . Предыдущая версия .
Отредактировано 05.11.2023 15:35 bnk . Предыдущая версия .
Re[4]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.11.23 15:47
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Ну вот вечно ты так, требуешь к себе человеческого отношения


— Как называется мужчина, который может, но не хочет?
— Сволочь он! Сволочь!

bnk>Можно хостить где угодно


"Где угодно" — это включая калькуляторы и смарт-часы? Под виндой работать может?

И он должен работать там же, где будет лежать сайт, или может просто создавать дерево каталогов, которое затем можно закачать на сервер?

bnk>Если будет время попробую написать как это использовать, типа руководства для динозавров


А что ж сами разработчики не напишут?

bnk>index.astro (конвертируется в index.html)


А брать исходники в HTML, и подставлять туда значения, определенные в конфигурации, оно умеет? Писать все в MarkDown как-то не хочется.
Re[5]: Запретить через .htaccess отдачу определенных файлов
От: bnk СССР http://unmanagedvisio.com/
Дата: 05.11.23 16:37
Оценка: 12 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

bnk>>Можно хостить где угодно


ЕМ>"Где угодно" — это включая калькуляторы и смарт-часы? Под виндой работать может?

ЕМ>И он должен работать там же, где будет лежать сайт, или может просто создавать дерево каталогов, которое затем можно закачать на сервер?

Конечно. Там по сути нечему "работать", на выходе получаешь просто каталог "dist" с HTML файлами, который надо закачать на сервер. Это же и есть суть статической генерации.
Ну опционально еще кроме html там может быть javascript, если он где-то используется. Ну и файлы которые ты сам туда положил (любого типа)

ЕМ>А брать исходники в HTML, и подставлять туда значения, определенные в конфигурации, оно умеет?


Да, умеет. Самое простое это расширение .html изменить на .asto чтобы файл обрабатывался
Например если из переменной окружения, то примерно так как ниже.
Можно и свой код влепить любой в принципе, который будет выполняться во время компиляции сайта (ну, чтобы получить эту "конфигурацию", если это что-то специфическое)
Код в HTML не включится (все что между "----" обрабатывается во время компиляции)
---
const myValue = import.meta.env.MY_ENV_VARIABLE;
---
<html>
  <body>{myValue}</body>
</html>


Да, для редактирования (ну чтобы автокомплит был и прочие приятности) я VS Code использую, там есть специализированное расширение.
А вообще есть даже целая CMS, внутри VS Code (но я ее не использую, может в будущем)

И все что выше, это даже близко не основная фишка
Основная для меня — что можно так же как html или md/mdx файлы выше импортировать КОМПОНЕНТЫ (написанные на React, Angular, Vue, etc)
Отредактировано 05.11.2023 17:10 bnk . Предыдущая версия . Еще …
Отредактировано 05.11.2023 17:00 bnk . Предыдущая версия .
Отредактировано 05.11.2023 16:55 bnk . Предыдущая версия .
Отредактировано 05.11.2023 16:53 bnk . Предыдущая версия .
Отредактировано 05.11.2023 16:52 bnk . Предыдущая версия .
Отредактировано 05.11.2023 16:51 bnk . Предыдущая версия .
Отредактировано 05.11.2023 16:51 bnk . Предыдущая версия .
Отредактировано 05.11.2023 16:39 bnk . Предыдущая версия .
Отредактировано 05.11.2023 16:39 bnk . Предыдущая версия .
Re[6]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.11.23 11:33
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Там по сути нечему "работать", на выходе получаешь просто каталог "dist" с HTML файлами, который надо закачать на сервер.


То есть, по сути, это макропроцессор?

А зависимости оно отслеживает? Если в исходниках изменился, скажем, один прототип страницы, или параметры, затрагивающие только часть страниц, он пересоздает только их, или все скопом? Это я к тому, какой объем нужно будет загружать на сервер после каждой модификации.

Ну и под виндой (без WSL) его запустить можно?

bnk>можно так же как html или md/mdx файлы выше импортировать КОМПОНЕНТЫ (написанные на React, Angular, Vue, etc)


Мне это пока не актуально.
Re[7]: Запретить через .htaccess отдачу определенных файлов
От: bnk СССР http://unmanagedvisio.com/
Дата: 06.11.23 12:59
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

bnk>>Там по сути нечему "работать", на выходе получаешь просто каталог "dist" с HTML файлами, который надо закачать на сервер.


ЕМ>То есть, по сути, это макропроцессор?


Да, можно и так обозвать

ЕМ>А зависимости оно отслеживает? Если в исходниках изменился, скажем, один прототип страницы, или параметры, затрагивающие только часть страниц, он пересоздает только их, или все скопом? Это я к тому, какой объем нужно будет загружать на сервер после каждой модификации.


Все скопом. Т.е. есть явный шаг "компиляция" на котором собственно собирается сайт. Как обычная софтина компилируется.
Чтобы меньше заливать, можно деплоить из GIT репозитория например (но вообще-то откуда там большие объемы, там же HTML файлы — килобайты, не мегабайты?)

ЕМ>Ну и под виндой (без WSL) его запустить можно?


Конечно. Просто открываешь папку в VS Code и вперед. Но командная строка все же нужна (чтобы запустить компиляцию, например).
Ну или чтобы предпросмотр сделать без деплоймента на сервер (локально оно имеет встроенный веб-сервер для предварительного просмотра)
npm run dev / npm run build / npm run preview

Да, NodeJS понятно должна быть (чтобы "npm" работало)

ЕМ>Мне это пока не актуально.


Ну там и другие фишки есть. Например "макрос с параметрами".
Можно сделать повторно используемый блок, и вызывать его с разными параметрами (ну карточка продукта например)

product-card
---
const { name, description } = Astro.props
---
<div class="my-product-card">
   <div>{name}</div>
   <div>{description}</div>
</div>


index
---
import ProductCard from 'product-card'
---
<div>
   <ProductCard name="App 1" description="..." />
   <ProductCard name="App 2" description="..." />
</div>


Да, язык везде javascript/typescript.
Отредактировано 06.11.2023 14:11 bnk . Предыдущая версия . Еще …
Отредактировано 06.11.2023 14:08 bnk . Предыдущая версия .
Отредактировано 06.11.2023 13:15 bnk . Предыдущая версия .
Отредактировано 06.11.2023 13:11 bnk . Предыдущая версия .
Отредактировано 06.11.2023 13:08 bnk . Предыдущая версия .
Отредактировано 06.11.2023 13:07 bnk . Предыдущая версия .
Отредактировано 06.11.2023 13:00 bnk . Предыдущая версия .
Re[2]: Запретить через .htaccess отдачу определенных файлов
От: TailWind  
Дата: 06.11.23 17:40
Оценка:
bnk>В лес этот SSI
+1
Только сделай на php. Зачем такой изврат?

По теме:
Deny from all
Allow from env=MY_VALUE

Я не знаю. Есть там в этом SSI возможность переменные среды устанавливать
Re[3]: Запретить через .htaccess отдачу определенных файлов
От: bnk СССР http://unmanagedvisio.com/
Дата: 06.11.23 18:12
Оценка:
Здравствуйте, TailWind, Вы писали:

bnk>>В лес этот SSI


TW>+1

TW>Только сделай на php. Зачем такой изврат?

Для PHP требуется (платный) сервер. И он тормозной. В общем PHP не нужен, это каменный век.
Отредактировано 06.11.2023 18:15 bnk . Предыдущая версия . Еще …
Отредактировано 06.11.2023 18:13 bnk . Предыдущая версия .
Re[4]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.11.23 10:03
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Для PHP требуется (платный) сервер.


Э-э-э... Чем не годится тот сервер, на котором лежит сайт?

bnk>И он тормозной.


Насколько, кстати, тормозной, если не увлекаться запросами к БД и сложной обработкой текстов?

bnk>PHP не нужен, это каменный век.


Я бы не сказал, что полная статическая перегенерация сайта чем-то "современнее" PHP. Это ж как в традиционной программе, вместо выноса литеральных констант в заголовки, и именования их, выносить эти константы в отдельные файлы, и использовать внешние средства для вставки их опять-таки в литеральной форме. Да, может быть удобно, но технически это ужасно.
Re[5]: Запретить через .htaccess отдачу определенных файлов
От: bnk СССР http://unmanagedvisio.com/
Дата: 07.11.23 10:47
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

bnk>>Для PHP требуется (платный) сервер.


ЕМ>Э-э-э... Чем не годится тот сервер, на котором лежит сайт?


Фактом своего существования
Для статических сайтов полно платформ, которые могут хостить такой контент забесплатно, на заданном доменном имени, с CDN, те же GitHub Pages, Cloudflare, Azure Static Website.

bnk>>И он тормозной.


ЕМ>Насколько, кстати, тормозной, если не увлекаться запросами к БД и сложной обработкой текстов?


Ну он всяко медленнее чем просто отдача HTML.

bnk>>PHP не нужен, это каменный век.


ЕМ>Я бы не сказал, что полная статическая перегенерация сайта чем-то "современнее" PHP. Это ж как в традиционной программе, вместо выноса литеральных констант в заголовки, и именования их, выносить эти константы в отдельные файлы, и использовать внешние средства для вставки их опять-таки в литеральной форме. Да, может быть удобно, но технически это ужасно.


IMHO это супер-современное решение для фронтенда на данный момент, круче просто ничего нет
Там же не обязательно делать файлами, можно и программными модулями. Т.е. import можно например и на тайпскриптовые модули делать (получая типизированный импорт с автокомплитом и всеми плюсами проверок времени компиляции), а вовсе не куски HTML. Куски HTML я привел как прямую замену SSI.
Одна гидрация практически любых компонентов (т.е. добавление интерактивности только на фронтенде) чего стоит
Отредактировано 07.11.2023 11:03 bnk . Предыдущая версия . Еще …
Отредактировано 07.11.2023 11:02 bnk . Предыдущая версия .
Отредактировано 07.11.2023 10:59 bnk . Предыдущая версия .
Отредактировано 07.11.2023 10:57 bnk . Предыдущая версия .
Отредактировано 07.11.2023 10:56 bnk . Предыдущая версия .
Отредактировано 07.11.2023 10:53 bnk . Предыдущая версия .
Отредактировано 07.11.2023 10:50 bnk . Предыдущая версия .
Re[3]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.11.23 17:49
Оценка:
Здравствуйте, TailWind, Вы писали:

TW>Allow from env=MY_VALUE


Тогда уж было бы проще через <IfDefine>, ибо SSI может и не использоваться в некоторых страницах.

TW>Есть там в этом SSI возможность переменные среды устанавливать


Есть, но только внутри себя (чтоб потом их подставлять).
Re[4]: Запретить через .htaccess отдачу определенных файлов
От: TailWind  
Дата: 08.11.23 06:00
Оценка:
Все тайные скрипты в отдельный каталог типа "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>
Отредактировано 08.11.2023 6:07 TailWind . Предыдущая версия .
Re[5]: Запретить через .htaccess отдачу определенных файлов
От: TailWind  
Дата: 08.11.23 06:10
Оценка:
Интересно, а вот эта добавка "E=ACCESS_ALLOWED:1" будет работать с SSI?

Тогда в закрытом "inc" каталоге нужен .htaccess с:

Deny from all
Allow from env=REDIRECT_ACCESS_ALLOWED
Отредактировано 08.11.2023 6:14 TailWind . Предыдущая версия .
Re[6]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.11.23 07:17
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Для статических сайтов полно платформ, которые могут хостить такой контент забесплатно


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

bnk>Ну он всяко медленнее чем просто отдача HTML.


Так и SSI медленнее за счет дополнительной обработки. Вопрос в том, насколько медленнее. Если это единицы процентов на фоне обычных сетевых задержек, и десятки миллисекунд в общем, то нет смысла стремиться это ускорить.
Re[7]: Запретить через .htaccess отдачу определенных файлов
От: pva  
Дата: 08.11.23 08:49
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вопрос в том, насколько медленнее. Если это единицы процентов на фоне обычных сетевых задержек, и десятки миллисекунд в общем, то нет смысла стремиться это ускорить.

Для статики тебе будет неразличимо, имхо. Переименовываешь все html в php и используешь <?php include "" ?> где нужно, например.
В принципе, можно не переименовывать, а настроить апач на процессинг html через php.
newbie
Отредактировано 08.11.2023 8:50 pva . Предыдущая версия .
Re[8]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.11.23 08:58
Оценка:
Здравствуйте, pva, Вы писали:

pva>Для статики тебе будет неразличимо, имхо.


Я тоже так думаю.

pva>используешь <?php include "" ?>


С ними та же проблема, что и с SSI — HTML-редакторы возбуждаются на тэг внутри тэга (тот же URL). В идеале подошло бы что-то вроде ${var}, но искаропки никто не поддерживает.
Re[5]: Запретить через .htaccess отдачу определенных файлов
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 08.11.23 09:06
Оценка:
Здравствуйте, 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 отдачу определенных файлов
От: TailWind  
Дата: 08.11.23 09:15
Оценка:
ЕМ>Поддерживать целостность при модификациях структуры не тяжело?

Как раз очень удобно
Может я сумбурно объясняю

У тебя в отдельном "inc" каталоге лежит вся php кухня, которая генерит шапочку сайта
Туда редко залезаешь

И есть каталог для каждой странички с файлом _html с её содержимым
Ещё я делаю файлы _php. Для динамического содержимого, типа форм

Всё редактируется с помощью FTP редактора
Очень удобно
Re[6]: Запретить через .htaccess отдачу определенных файлов
От: TailWind  
Дата: 08.11.23 09:21
Оценка:
ЕМ>Но мне удобно включать некоторые файлы из родительских каталогов, делая таким образом наследование

Не очень понимаю зачем это нужно?

Единственное что можно включать это шапочку сайта
Но гораздо удобнее делать наоборот
Из шапочки включать содержимое страницы, а не из страницы включать шапочку
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.