• ЧПУ Ссылки для php?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{QUERY_STRING} (?:^|&)t\=21(?:$|&)
    RewriteRule ^mydomain\.com/thread\.php$ /mydomain.com/thread/21? [L,R=301]


    Это прям если нужно редирект сделать
    GET не является частью URL и выделяется отдельно. через %{QUERY_STRING}
    так что у вас по идее нужно было сделать так.
    index.php?route=%1
    %1 - это $1 но если ты выделяешь в RewriteCond

    Что же касается ЧПУ

    RewriteEngine On
    Options +FollowSymLinks
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !/index.php$
    RewriteRule ^(.*)$ /index.php [L]

    То я бы добавил еще отрицание самого индекса дабы не создать цикла.

    ps
    ?: не учитывать эту группу не обязательное правило
    Ответ написан
    1 комментарий
  • Как найти строку в txt файле, и написать под ней текст?

    Zoominger
    @Zoominger Куратор тега Python
    System Integrator
    Топорный способ - считываем текст в массив строк, ищем нужную строку и вставляем после неё новый текст. Весь массив пишем в файл.
    Ответ написан
    4 комментария
  • Как перенаправлять сообщения от пользователи, в embed бота?

    Два варианта:
    1. То как предложил Александр, использовать параметры команды:
    @bot.command()
    async def report(ctx, user: discord.Membmer, *, reason: str):  # первый kwarg используется как "собирающий" аргумент
    # https://discordpy.readthedocs.io/en/v1.3.4/ext/commands/commands.html#keyword-only-arguments
        ...

    Команда в таком случае будет вызываться следующим образом: [p]report User#0000 Нарушение правила 42
    2. Ждать ответа:
    Для этого вам понадобиться ждать события сообщения:
    https://discordpy.readthedocs.io/en/v1.3.4/api.htm...
    from asyncio import TimeoutError as AsyncTimeoutError
    
    @bot.command()
    async def report(ctx):
        ...
        try:
            member = await bot.wait_for("message", check=lambda m: m.author == ctx.author, timeout = 60)  # Базовая проверка - будет ловить сообщения от пользователя запустившего команду везде.
        except AsyncTimeoutError:
            await ctx.send("Вы уснули, я ушёл")
            return
         # На данный момент переменная "member" является лишь строкой, и не факт что это реальный пользователь
         # Используем конвертер для перевода из строки в пользователя
         # https://discordpy.readthedocs.io/en/v1.3.4/ext/commands/api.html#discord.ext.commands.MemberConverter
         try:
             member = commands.MemberConverter().convert(ctx, member)
         except commands.BadArgument:
             await ctx.send("Это не пользователь, кого вы пытаетесь ~~на...~~ обмануть")
             return
          # и тоже самое для причины
    Ответ написан
    4 комментария