Где разместить правила перезаписи в prestashop 1.7 .htaccess?

Престашоп 1.7.2.4

После установки первые строки сгенерированного .htaccess содержат следующее содержимое:

# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

<IfModule mod_rewrite.c> ... ..

Когда я устанавливаю один из модулей, он добавляет свои собственные правила перезаписи в конце файла .htaccess. Это делается с помощью файловых функций PHP (file_put_contents, file_get_contents), но с опцией добавления. К сожалению, это не сработает, пока вы не поместите правила в начало файла .htaccess (чтобы предшествовать некоторым другим правилам, касающимся того же шаблона). Поэтому я изменил поведение модуля, чтобы он добавлялся вместо добавления.

Проблема: я не понимаю комментарии PS в начале .htaccess. Означает ли это, что правила модуля обязательно должны быть добавлены в конце (как это сделали авторы модуля)?


person Adib Aroui    schedule 30.07.2018    source источник


Ответы (1)


Начиная с PrestaShop 1.5, мы сталкиваемся с большой путаницей в отношении того, перезаписывается ли настроенный файл .htaccess PrestaShop во время генерации .htaccess или нет.

На самом деле, PrestaShop не перезапишет изменения в файле .htaccess, если пользовательские правила размещены в правильных местах: до или после автоматически сгенерированных сопоставлений правил!

Пример: .htaccess

Your custom rules

# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again 
...
... auto-generated rules
...
# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

Your custom rules

PS: Изменение основной функциональности звучит довольно плохо.

person wp78de    schedule 31.07.2018