Рейтинг:1

Как избежать перезаписи файла .htaccess при использовании команды Compose?

флаг mw

На моем новом веб-сайте Drupal 9 я настроил .htaccess файл и robots.txt файл

Я не хочу, чтобы его файлы перезаписывались при обновлении с помощью Composer.

Я добавил следующие строки в свой файл composer.json, но .htassess файл перезаписывается каждый раз. Что не так с моим кодом? Спасибо

"дополнительный": {
    "друпал-скаффолд": {
        "места": {
            "веб-корень": "./"
        },
        "отображение файлов": {
            "[веб-корень]/.htaccess": ложь,
            "[веб-корень]/robots.txt": ложь
        }
    },
...
sonfd avatar
флаг in
Вы можете создать патч для своих изменений в файлах htaccess и robots.txt и использовать composer для применения патча, а не отказываться от их обновления. См. [Как правильно исправить файл htaccess в composer.json] (https://drupal.stackexchange.com/questions/271146/how-to-patch-your-htaccess-file-correctly-in-composer-json)
Thirsty Six avatar
флаг gs
Та же проблема. В моем случае: я добавил несколько перенаправлений на .htaccess в Drupal. когда я запускаю установку/обновление композитора, .htaccess сбрасывается в Drupal 9.
Рейтинг:2
флаг in

Обе .htaccess и robots.txt являются частью ядра Drupal, они называются «Scaffold Files». Когда вы делаете обновление композитора он загрузит версию репозитория этих файлов.

Вы должны повторно добавлять свои пользовательские изменения каждый раз, когда вы делаете обновление композитора. К счастью, есть автоматизированный способ сделать это:

Вариант 1. Добавьте свои изменения:

  "имя": "мой/проект",
  ...
  "дополнительный": {
    "друпал-скаффолд": {
      "отображение файлов": {
        "[веб-корень]/robots.txt": {
          "append": "активы/мои-роботы-дополнения.txt",
        }
      }
    }
  }

Вариант 2. Создать патчи:

  "имя": "мой/проект",
  ...
  "скрипты": {
    «пост-друпал-скаффолд-cmd»: [
      "cd docroot && patch -p1 <../patches/htaccess-ssl.patch"
    ]
  }

Вариант 3. Исключить (не рекомендуется):

Официальный пример:

  "имя": "мой/проект",
  ...
  "дополнительный": {
    "друпал-скаффолд": {
      "отображение файлов": {
        "[веб-корень]/robots.txt": ложь
      }
    }
  }

Код, который вы предоставили, выглядит правильно.

Убедитесь, что вы используете https://github.com/drupal/ядро-композитор-скаффолд пакет и не устаревший https://github.com/drupal-composer/drupal-скаффолд.

Но этот подход не рекомендуется, потому что вы можете пропустить важные основные изменения/исправления безопасности.

Подробнее о Изменение файлов шаблонов.

Ответить или комментировать

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