В Mobirise, все URL ссылки, на конце имеют расширение .html
Такое, присуще всем HTML сайтам и тут, нет ничего страшного. С точки зрения SEO, поисковые системы не относяться негативно к сайтам, у которых на конце URL-адреса есть расширение .html
Однако, с точки зрения юзабилити и эстетики, можно убрать на конце страницы, расширение .html
Поэтому, владельцы HTML сайтов, часто задаются вопросом ,а как убрать .html в конце адреса каждой веб-страницы?
Если у вас HTML сайт, или сайт на конструкторе сайтов Mobirise, вам нужно создать файл .htaccess и разместить его в корень вашего сайта на хостинге. Создать файл .htaccess, можно в любом текстовом редакторе. Однако, лучше это сделать в программе Notepad++ или аналогичной.
1-й Вариант файла .htaccess - самый оптимальный вариант.
Способ для HTML сайтов. В том числе и для тех сайтов, которые созданы в конструкторе сайтов Mobirise.
Файл .htaccess, должен содержать следующую информацию:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ https://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)\/$ https://www.%1/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ https://ВАШ_САЙТ/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://ВАШ_САЙТ/ [R=301,L]
Redirect 301 /index https://ВАШ_САЙТ
Где указанно ВАШ_САЙТ, необходимо указать URL вашего сайта. Если код не заработает, вставьте в самом начале следующую строку:
Options +FollowSymLinks -MultiViewsОднако, зачастую, этого не нужно. При этом, все зависит от каждого хостинга.
Файл .htaccess, нужно сохранить со следующим именем:
.htaccess
При этом, он должен быть без расширения. Сохраняйте его, БЕЗ расширения на конце файла! Если файл сохранился у вас с расширением (часто, это расширение .txt), выберите Переименовать файл и удалите расширение (при условии, если у вас в системе, настроено отображение расширений на конце файлов). При сообщении системы о том, что фал может перестать работать, Соглашаемся и подтверждаем действие. Вот скрин, как должен выглядеть сохраненный файл:
Данный код, что приведен выше, позволит вам не только убрать .html на конце страниц, а и удалить дубль главной страницы index.html, благодаря 301 редиректу, на ваш основной домен сайта. Также, у вас должен быть подключен на сайте SSL сертификат безопасности, так ка этот код, расчитан на сайты, которые работают по https:// протоколу.
2-й Вариант файла .htaccess - не на всех хостингах работает.
Используйте данный способ, если 1-й Вариант, у вас не работает.
Удаление .html в адресе страниц на сайте, созданном в Mobirise.
Создайте текстовый файл и назовите его .htaccess
Введите в него этот текст, сохраните его и загрузите в папку сайта на сервере.
Код файла .htaccess:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
3-й Вариант файла .htaccess - если не работает 2-й вариант.
Используйте данный способ, если 2-й Вариант, у вас не работает.
Аналогичный код со второго варианта, только удаляем строку:
Options +FollowSymLinks -MultiViews
Должно получиться:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
При этом, 2-й и 3-й варианты, не удаляют дубль на главную страницу. При желании, вы можете добавить 301 редирект, в конце содержимого кода (через пробел на одну строку в конце основного кода, по аналогу с первым вариантом):
Redirect 301 /index https://ВАШ_САЙТ
Где вместо ВАШ_САЙТ, указываем URL на свою главную страницу. Если не настроить 301 редирект, ваша главная страница сайта, будет открываться приблизительно так:
Или так:
На заметку.
Если у вас сайт на Mobirise, есть инструкция на официальном сайте Mobirise с информацией, как убрать .html на конце страницы. В принципе, если вышеприведенные варианты не сработают, воспользуйтесь данным способом, как последним вариантом.
Обратите внимание!
Уже неоднократно сталкиваюсь, когда пользователи создают данный файл (файл .htaccess), с расширением на конце. Нередко, встречаю .txt на конце. Вот пример неверного файла:
Это - ОШИБКА. На конце файла, НЕ должно быть расширения. Только, название .htaccess
На хостинге, файл .htaccess, будет выглядеть так:
Файлы .htaccess в данной заметке, применимы для всех HTML сайтов, в том числе и для сайтов, созданных в конструкторе Mobirise, что позволяет убрать html из url страниц. Способ рабочий и используется мною на всех сайтах HTML. Однако, при создании файла .htaccess, нет универсальных решений. Некоторые хостинги, не дают доступ к редактированию/созданию файла .htaccess и/или вносят ряд ограничений. При этом, в большинстве случаев, приведенные выше варианты, самые оптимальные и универсальные.
Нужен стабильный, безопасный и недорогой хостинг?
Безопасный, стабильный и доступный по цене хостинг. Узнать больше...
Добавлено 22.02.2021
По просьбе пользователя в комментарии, добавляю вариант для тех, кому нужно убрать полностью index.html на всех страницах сайта. Используйте следующий код:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
На некоторых хостингах, нужно добавлять в самом начале:
Options +FollowSymLinks -MultiViews
Должно быть так:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}/ -d
RewriteCond %{SCRIPT_FILENAME}.html !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
И вот код, для первого варианта:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)\/$ https://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_HOST} ^([^www].*)$
RewriteRule ^(.*)\/$ https://www.%1/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ https://www.ВАШ_САЙТ/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://www.ВАШ_САЙТ/ [R=301,L]
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]
Повторюсь, что настройки .htaccess, сильно зависят от каждого хостинга. Если у вас возникают проблемы с настройкой .htaccess на вашем хостинге, обратитесь за помощью к техподдержке своего хостинга.
Если у вас многоязычная версия сайта, созданная в конструкторе сайтов Mobirise, ознакомьтесь с основными моментами, которые нужно учитывать при создании многоязычной версии сайта в конструкторе Mobirise: «Как создать многоязычную версию сайта в Mobirise?».
Если будут вопросы, поправки и дополнения – оставляйте комментарии.
Единственное решение которое мне помогло, ОГРОМНОЕ СПАСИБО!!!
ОтветитьУдалитьда действительно, работает только этот способ, спасибо!!!
ОтветитьУдалитьНе немного покопался и понял что вот это лучшее:
ОтветитьУдалитьПеренаправляет с http на htps
Убирает www
______________________________________________
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]