<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Воронин: заметки с тегом htaccess</title>
<link>https://voronin.one/tags/htaccess/</link>
<description>воронин, voronin, it</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.4 (v4171)</generator>

<itunes:subtitle>воронин, voronin, it</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Synology chat bot (download)</title>
<guid isPermaLink="false">10</guid>
<link>https://voronin.one/all/synology-chat-bot-download/</link>
<pubDate>Thu, 07 Oct 2021 16:09:09 +0300</pubDate>
<author></author>
<comments>https://voronin.one/all/synology-chat-bot-download/</comments>
<description>
&lt;p&gt;сижу, допиливаю функцию, чтобы бот в ответ присылал пользователю файл...&lt;br /&gt;
файл, само собой, будет генериться на лету, за это отвечает скрипт php и будет выдавать примерно следующее:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;header(&amp;quot;Content-type: text/plain&amp;quot;);
header(&amp;quot;Content-Disposition: attachment; filename=список посещений офиса за &amp;quot;.$monthes[date(&amp;#039;n&amp;#039;, strtotime($_REQUEST[&amp;#039;month&amp;#039;]))].&amp;quot; &amp;quot;.date(&amp;#039;Y&amp;#039;, strtotime($_REQUEST[&amp;#039;month&amp;#039;])).&amp;quot;.log&amp;quot;);
echo $log_str;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;а в самом боте есть вызов этой url, когда-то давно написал функцию&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;function answer_file($user_id,$text,$file,$bot_token)
# $user_id - массив с id
# $text - комментарий к файлу
# $file - url на сам файл
# $bot_token - токен бота
{
    $data = array (
    &amp;#039;text&amp;#039;    =&amp;gt; $text,
    &amp;#039;user_ids&amp;#039;=&amp;gt; $user_id,
&amp;#039;file_url&amp;#039;=&amp;gt; $file
    );
    $options = array(
    &amp;#039;http&amp;#039; =&amp;gt; array(
        &amp;#039;method&amp;#039;  =&amp;gt; &amp;#039;POST&amp;#039;,
        &amp;#039;content&amp;#039; =&amp;gt; &amp;#039;payload=&amp;#039;.json_encode( $data ),
        &amp;#039;header&amp;#039;=&amp;gt;  &amp;quot;Content-Type: application/json\r\n&amp;quot; .
                    &amp;quot;Accept: application/json\r\n&amp;quot;
        )
    );
    $context  = stream_context_create( $options );
    $result = file_get_contents( &amp;#039;https://server/webapi/entry.cgi?api=SYNO.Chat.External&amp;amp;method=chatbot&amp;amp;version=2&amp;amp;token=%22&amp;#039;.$bot_token.&amp;#039;%22&amp;#039;, false, $context );
    $response = json_decode($result);
    return $result;
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ну, в целом работает, только я же запрашиваю не существующий файл, а скрипт с параметрами, типа:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;https://server/bots/get_tabel.php?action=get_log&amp;amp;login=axl&amp;amp;month=2021-09&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;и получаю файл с именем &lt;b&gt;get_tabel.php&lt;/b&gt;&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/izobrazhenie_2021-10-07_152636.png" width="605" height="230" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;не такого результата я хотел, ох не такого&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/izobrazhenie_2021-10-07_154131.png" width="300" height="248" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Хорошо, переходим к радикальному методу... т. е. с nginx на apache и используем .htaccess&lt;br /&gt;
в результате нам надо получить url вида:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;https://server/bots/logs/axl/2021-09/список посещений офиса за сентябрь 2021.log&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;приступим...&lt;/p&gt;
&lt;p&gt;накидаем .htassess, учтем что нам надо использовать скрипт, только когда запрашивается папка logs&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;RewriteEngine On
 
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
 
RewriteRule ^logs/.*$ ./parse.php [L]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;я временно сделал parse.php чтобы отладить, потом, конечно же перенаправлю на основной скрипт&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;?php

$path = $_SERVER[&amp;#039;REQUEST_URI&amp;#039;];
$paths = explode(&amp;#039;/&amp;#039;, $path);

echo &amp;quot;&amp;lt;pre&amp;gt;&amp;quot;;
print_r ($paths);
echo &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot;;

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;и результат запроса&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;Array
(
    [0] =&amp;gt; 
    [1] =&amp;gt; logs
    [2] =&amp;gt; axl
    [3] =&amp;gt; 2021-09
    [4] =&amp;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
)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;вы не поверите, самое крутое, что htassecc заработал с первого раза 😁&lt;/p&gt;
&lt;p&gt;ну вот... после небольших манипуляций получился красивый результат:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/izobrazhenie_2021-10-07_160516.png" width="623" height="236" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://voronin.one/pictures/izobrazhenie_2021-10-07_160736.png" width="351" height="318" alt="" /&gt;
&lt;/div&gt;
</description>
</item>


</channel>
</rss>