Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Как запретить прямой просмотр изображений на PHP и Nginx

Запрет просмотра определенных изображений через PHP — это эффективный способ контроля доступа к контенту на вашем сайте. Это может быть полезно для защиты конфиденциальных данных, ограничения доступа к изображениям для определенных пользователей или групп, а также для предотвращения несанкционированного использования контента. В этой статье мы рассмотрим, как настроить запрет просмотра изображений с помощью PHP и Nginx.

Обязательно к прочтению:


Зачем использовать PHP для контроля доступа?


PHP позволяет вам выполнять логику на стороне сервера перед тем, как вернуть изображение пользователю. Это дает вам возможность:
  • Проверять авторизацию: Убедиться, что пользователь авторизован для просмотра изображения.
  • Ограничивать доступ: Запрещать доступ к определенным изображениям для определенных пользователей или групп.
  • Логировать запросы: Записывать, кто и когда пытался
...

SiteMap.xml: xmlns="http://..." или xmlns="https://... "

XML
Кратко о том как в карте сайта (sitemap.xml) правильно писать строку:
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

Так: xmlns="http://..." или так: xmlns="https://... ".
Верно будет указывать XMLNS с использованием HTTP-схемы, так как схема http: традиционно поддерживается стандартом sitemaps.org и повсеместно принята в качестве стандартного формата.

Вот правильный вариант:
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

Хотя формально использование схемы  https:  тоже возможно, однако это менее распространено и чаще всего вызывает сомнения у некоторых парсеров и валидаторов. Поэтому для максимальной совместимости и уверенности лучше придерживаться классического варианта с http....

Максимально количество ссылок в XML карте сайта (SiteMap)

XML
Максимальное количество ссылок в одной XML-карте (sitemap) ограничено стандартом формата Google и других поисковиков и составляет 50 тысяч ссылок.

Если на вашем ресурсе больше 50 тысяч URL, необходимо разделить их на несколько XML-карт и объединить их общей картой индексов (sitemap index). Каждая отдельная карта должна подчиняться этому лимиту.

Формат индекса выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
        <loc>https://danfa.net/sitemap1.xml</loc>
        <lastmod>2025-10-05T12:00:00Z</lastmod>
    </sitemap>
    <sitemap>
        <loc>https://danfa.net/sitemap2.xml</loc>
        <lastmod>2025-10-06T12:00:00Z</lastmod>
    </sitemap>
</sitemapindex>

Таким образом, если у вас большое количество URL, лучше сегментировать их на несколько файлов и создать общий индексный файл для лучшей индексации поисковиками.

Возможно, будет интересно: Блог: Пример XML карты, что...

Пример XML карты, что ссылается на другие XML карты

XML
Простой пример XML-карты (sitemap index), которая ссылается на другие XML-карты:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <!-- Первая ссылка на sitemap -->
    <sitemap>
        <loc>https://example.com/sitemap1.xml</loc>
        <lastmod>2025-10-05T12:00:00+00:00</lastmod>
    </sitemap>

    <!-- Вторая ссылка на sitemap -->
    <sitemap>
        <loc>https://example.com/sitemap2.xml</loc>
        <lastmod>2025-10-06T14:30:00+00:00</lastmod>
    </sitemap>

    <!-- Третья ссылка на sitemap -->
    <sitemap>
        <loc>https://example.com/sitemap3.xml</loc>
        <lastmod>2025-10-07T10:15:00+00:00</lastmod>
    </sitemap>
</sitemapindex>

Объяснение примера:
  • sitemapindex: Основной контейнер для ссылок на другие XML-карты.
  • sitemap: Тег, внутри которого указаны отдельные ссылки на конкретные XML-карты.
  • loc: Обязательный элемент, задаёт абсолютный URL карты сайта.
  • lastmod: Необязательный
...

Как сделать резервную копию MySQL командой mysqldump

Один из самых быстрых способов сохранить резервную копию базы данных MySQL — использование команды mysqldump. Эта команда позволяет экспортировать всю базу данных либо выбранные таблицы в файл формата SQL, который впоследствии можно восстановить.

Как создать бекап?


Выполните следующую команду в терминале Linux или Windows (PowerShell или cmd):
mysqldump -u username -p password database_name > backup.sql

Параметры:
  • username — имя пользователя MySQL.
  • password — пароль пользователя (пароль можно ввести после приглашения).
  • database_name — имя базы данных, которую нужно сохранить.
  • backup.sql — имя файла, в который будет сохранена копия.

Команда создаст резервную копию указанной базы данных и сохранит её в файл backup.sql. Этот файл можно скопировать на другой сервер или устройство для сохранности.

Альтернативные опции


Резервное копирование отдельной таблицы:
mysqldump -u username -p password database_name table_name > table_backup.sql

Создание сжатого архива:
mysqldump -u
...