Добро пожаловать в блог, где важны слова.

Тут я частенько публикую в открытым доступе полезные материаллы и готовые решения для повседневных задач по 1С-Битрикс и Битрикс24, а также затрагиваю темы всё что связано с сайтостроением

Настройка .htaccess в 1С-Битрикс

Настройка .htaccess в 1С-Битрикс

Где находится файл .htaccess в 1С-Битрикс?

Сайт разработанный на любом CMS или framework движке файл находиться в корневой директории сайта.

В битриксе его можно увидеть через админку. в разделе "Файлы и папки", но я не рекомендую редактировать его через админку битрикса, лучше подключитесь по FTP/SFTP через любой файловый редактор и смело правьте его там. Да и вообще перед внесением каких либо новых правил в htaccess, скачайте этот файл себе на компьютер, чтобы при неудачных внесении правок можно было восстановить прежнюю версию файла.


Настройка редиректа с www на без www в 1С-Битрикс.

Чтобы Ваш сайт по адресу www.ваш-сайт.ru перенаправлялся на адрес ваш-сайт.ru, необходимо прописать в секции mod_rewrite.c следующее правило

#редирект с www на без-www
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

#наоборот с без www на www
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Настройка редиректа с http на https в 1С-Битрикс

Если у Вас уже имеется SSL сертификат и прикрепили его к своему домену. В панеле администрирования хостинга в разделе настройки сайта должен быть пункт перенаправлять с http на https, если нет, то прописывайте это в файле htaccess. Это сделать очень важно, потому что если проигнорировать этой действие Вы получите дубли всех страниц, которые есть на сайте.

#редирект с http на https
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Дубли страниц index.php в 1C-Битрикс.

Когда Вы создаете любой раздел, например /about/ (О нас), то он будет работать по двум адресам /about/ и /about/index.php. От таких дублей тоже избавляемся и прописываем правило:

RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
RewriteCond %{THE_REQUEST} !bitrix/admin/
RewriteRule ^(.*)index\.php$ http://%{HTTP_HOST}/$1 [R=301,L]

Убираем повторяющие слеши в конце URL

Пример: (https://ваш-сайт.ru/about////)

RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
RewriteRule . %1/%2 [L,R=301]
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]

Добавляем слэш "/" в конце URL адресов

Чтобы страницы не были доступны по 2-м адресам https://ваш-сайт.ru/about/ и https://ваш-сайт.ru/about то необходимо настроить редирект на слеш в конце URL страницы

RewriteCond %{REQUEST_URI} ^(.*)/$
RewriteRule .* - [L]

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
  
RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{REQUEST_URI} ^(.*)/index.php$
RewriteRule ^(.*)$ %1/ [R=301,L]

Настройка браузерного кеширования при помощи htaccess 1С-Битрикс

Это позволит нам снизить нагрузку на сервер для увеличения производительности сайта. Обычно рекомендуют использовать именно браузерное кеширование изображений, файлов стилей и скриптов. Чтобы включить кеширование прописываем после секции mod_rewrite следующий код:

<IfModule mod_deflate.c>
  <IfModule mod_filter.c>
      AddOutputFilterByType DEFLATE text/plain text/html
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
      AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/rss+xml
      AddOutputFilterByType DEFLATE application/json
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon
  </IfModule>
</IfModule>

<IfModule mod_headers.c>
	#кэшировать html и htm файлы на один день
	<FilesMatch "\.(html|htm)$">
		Header set Cache-Control "max-age=43200"
	</FilesMatch>
	#кэшировать css, javascript и текстовые файлы на одну неделю
	<FilesMatch "\.(js|css|txt)$">
		Header set Cache-Control "max-age=604800"
	</FilesMatch>
	#кэшировать флэш и изображения на месяц
	<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
		Header set Cache-Control "max-age=2592000"
	</FilesMatch>
	#отключить кэширование
	<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
		Header unset Cache-Control
	</FilesMatch>
</IfModule>
Возврат к списку