Рейтинг:2

Каков правильный процесс настройки файлов htaccess?

флаг cn

У нас есть настраиваемые ссылки перенаправления, которые используют правила RedirectMatch, которые перенаправляют на основе корневого пути. Мы бы предпочли обрабатывать их на уровне веб-сервера, а не использовать модуль перенаправления (если он даже может выполнять правила на основе совпадений), поэтому мы поместили эти правила в .htaccess файл, например:

RedirectMatch 301 ^/computing/hpc[/]?(.*) https://hpc.our.domain/$1

Поскольку .htaccess файл обновляется с помощью установки композитора из-за скаффолдинга, как лучше всего добавить наши правила в файл? Я не собираюсь мешать лесам обновлять .htaccess файл, но мне может понадобиться время от времени изменять наш патч, чтобы он применялся к самой новой версии.

Как вы относитесь к редактированию и обновлению патча, когда что-то нужно добавить или удалить?

leymannx avatar
флаг ne
Отвечает ли это на ваш вопрос? [Композитор перезаписывает .htaccess (и другие файлы) каждый раз, когда я что-то делаю](https://drupal.stackexchange.com/questions/290989/composer-keeps-overwriting-htaccess-and-other-files-every-time- я делаю что-нибудь)
shelane avatar
флаг cn
Не совсем. Я отредактировал свой вопрос, чтобы он, надеюсь, был более понятным.
Рейтинг:1
флаг cn

В зависимости от уровня настройки вы можете использовать две стратегии.

  • Патч drupal/core с измененным файлом htaccess, включая ваши настройки.
  • Переопределить файл htaccess с помощью скаффолдинга.

Если вы выберете первый вариант, это действительно простой способ сделать это.

  1. Проверьте версию Drupal, которую вы используете, в папку.
  2. Отредактируйте файл htaccess в assets/scaffold.
  3. Бег git diff > htaccess.patch.
  4. Вернитесь к своему проекту и создайте папку patches, поместите туда новый файл.
  5. Добавьте следующее в composer.json дополнительный раздел (убедитесь, что вы установили cweagans/composer-patches):
"патчи": {
  "друпал/ядро": {
    "Добавить перенаправления": "patches/htaccess.patch"
  }
}

Если вы выберете второй вариант:

  1. Создайте папку(и) assets/scaffold в вашем проекте.
  2. Скопируйте в него файл htaccess.
  3. Внесите свои коррективы в файл.
  4. Добавьте следующее в composer.json дополнительный раздел:
"друпал-скаффолд": {
  "места": {
    "веб-корень": "веб/"
  },
  "отображение файлов": {
    "[веб-корень]/.htaccess": "активы/скаффолд/.htaccess"
  }
}
Рейтинг:0
флаг cn

Ответ Райана Хартмана был великолепен. В итоге мы пошли немного другим путем. Как и в случае с Drupal, часто есть много способов сделать что-то.

Мы добавили этот раздел в наш композитор.json файл:

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

Наш .htaccess файл по-прежнему является частью нашего репозитория git. Каждый раз, когда нам нужно отредактировать правила, мы вносим все необходимые изменения в .htaccess файл, а затем мы запускаем сценарий bash (фактически пользовательская команда fin Docksal), который создает файл исправления. Скрипт выглядит так:

mkdir temphtaccess
компакт-диск temptaccess
git инициировать
cp "${DOCROOT_PATH}/core/assets/scaffold/files/htaccess" "${PROJECT_ROOT}/temphtaccess/.htaccess"
git добавить .
git commit -m 'Шекерная фиксация htaccess'
cp "${DOCROOT_PATH}/.htaccess" "${PROJECT_ROOT}/temphtaccess/.htaccess"
git diff > ../patches/htaccess.patch
cd ${PROJECT_ROOT} && rm -rf temphtaccess

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

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