{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Воронин: заметки с тегом htaccess",
    "_rss_description": "воронин, voronin, it",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/voronin.one\/tags\/htaccess\/",
    "feed_url": "https:\/\/voronin.one\/tags\/htaccess\/json\/",
    "icon": "https:\/\/voronin.one\/pictures\/userpic\/userpic@2x.jpg?1658757233",
    "authors": [
        {
            "name": "Алексей Воронин",
            "url": "https:\/\/voronin.one\/",
            "avatar": "https:\/\/voronin.one\/pictures\/userpic\/userpic@2x.jpg?1658757233"
        }
    ],
    "items": [
        {
            "id": "10",
            "url": "https:\/\/voronin.one\/all\/synology-chat-bot-download\/",
            "title": "Synology chat bot (download)",
            "content_html": "<p>сижу, допиливаю функцию, чтобы бот в ответ присылал пользователю файл...<br \/>\nфайл, само собой, будет генериться на лету, за это отвечает скрипт php и будет выдавать примерно следующее:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">header(&quot;Content-type: text\/plain&quot;);\n\theader(&quot;Content-Disposition: attachment; filename=список посещений офиса за &quot;.$monthes[date(&#039;n&#039;, strtotime($_REQUEST[&#039;month&#039;]))].&quot; &quot;.date(&#039;Y&#039;, strtotime($_REQUEST[&#039;month&#039;])).&quot;.log&quot;);\n\techo $log_str;<\/code><\/pre><p>а в самом боте есть вызов этой url, когда-то давно написал функцию<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">function answer_file($user_id,$text,$file,$bot_token)\n# $user_id - массив с id\n# $text - комментарий к файлу\n# $file - url на сам файл\n# $bot_token - токен бота\n{\n    $data = array (\n    &#039;text&#039;    =&gt; $text,\n    &#039;user_ids&#039;=&gt; $user_id,\n\t&#039;file_url&#039;=&gt; $file\n    );\n    $options = array(\n    &#039;http&#039; =&gt; array(\n        &#039;method&#039;  =&gt; &#039;POST&#039;,\n        &#039;content&#039; =&gt; &#039;payload=&#039;.json_encode( $data ),\n        &#039;header&#039;=&gt;  &quot;Content-Type: application\/json\\r\\n&quot; .\n                    &quot;Accept: application\/json\\r\\n&quot;\n        )\n    );\n    $context  = stream_context_create( $options );\n    $result = file_get_contents( &#039;https:\/\/server\/webapi\/entry.cgi?api=SYNO.Chat.External&amp;method=chatbot&amp;version=2&amp;token=%22&#039;.$bot_token.&#039;%22&#039;, false, $context );\n    $response = json_decode($result);\n    return $result;\n}<\/code><\/pre><p>ну, в целом работает, только я же запрашиваю не существующий файл, а скрипт с параметрами, типа:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/server\/bots\/get_tabel.php?action=get_log&amp;login=axl&amp;month=2021-09<\/code><\/pre><p>и получаю файл с именем <b>get_tabel.php<\/b><\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_152636.png\" width=\"605\" height=\"230\" alt=\"\" \/>\n<\/div>\n<p>не такого результата я хотел, ох не такого<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_154131.png\" width=\"300\" height=\"248\" alt=\"\" \/>\n<\/div>\n<p>Хорошо, переходим к радикальному методу... т. е. с nginx на apache и используем .htaccess<br \/>\nв результате нам надо получить url вида:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">https:\/\/server\/bots\/logs\/axl\/2021-09\/список посещений офиса за сентябрь 2021.log<\/code><\/pre><p>приступим...<\/p>\n<p>накидаем .htassess, учтем что нам надо использовать скрипт, только когда запрашивается папка logs<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">RewriteEngine On\n \nRewriteCond %{SCRIPT_FILENAME} !-d\nRewriteCond %{SCRIPT_FILENAME} !-f\n \nRewriteRule ^logs\/.*$ .\/parse.php [L]<\/code><\/pre><p>я временно сделал parse.php чтобы отладить, потом, конечно же перенаправлю на основной скрипт<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;?php\n\n$path = $_SERVER[&#039;REQUEST_URI&#039;];\n$paths = explode(&#039;\/&#039;, $path);\n\necho &quot;&lt;pre&gt;&quot;;\nprint_r ($paths);\necho &quot;&lt;\/pre&gt;&quot;;\n\n?&gt;<\/code><\/pre><p>и результат запроса<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">Array\n(\n    [0] =&gt; \n    [1] =&gt; logs\n    [2] =&gt; axl\n    [3] =&gt; 2021-09\n    [4] =&gt; %D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D0%BF%D0%BE%D1%81%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B9%20%D0%BE%D1%84%D0%B8%D1%81%D0%B0%20%D0%B7%D0%B0%20%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8C%202021.log\n)<\/code><\/pre><p>вы не поверите, самое крутое, что htassecc заработал с первого раза 😁<\/p>\n<p>ну вот... после небольших манипуляций получился красивый результат:<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_160516.png\" width=\"623\" height=\"236\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_160736.png\" width=\"351\" height=\"318\" alt=\"\" \/>\n<\/div>\n",
            "date_published": "2021-10-07T16:09:09+03:00",
            "date_modified": "2021-10-07T16:09:00+03:00",
            "tags": [
                "bot",
                "download",
                "file",
                "htaccess",
                "php",
                "Synology chat"
            ],
            "image": "https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_152636.png",
            "_date_published_rfc2822": "Thu, 07 Oct 2021 16:09:09 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "10",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "highlight\/highlight.js",
                    "highlight\/highlight.css"
                ],
                "og_images": [
                    "https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_152636.png",
                    "https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_154131.png",
                    "https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_160516.png",
                    "https:\/\/voronin.one\/pictures\/izobrazhenie_2021-10-07_160736.png"
                ]
            }
        }
    ],
    "_e2_version": 4171,
    "_e2_ua_string": "Aegea 11.4 (v4171)"
}