Убрать html с адресной строки

Убираем .html, .php и .htm в конце URL-адресов на Apache/Nginx

Часто слышу, что сеошники советуют убирать окончания .html, .php и .htm в адресах ваших сайтов – якобы, это негативно влияет на продвижение. Кто-то же говорит, что это просто визуально добавляет адресу лишний мусор.

В любом случае, убирать или оставлять эти окончания, решать вам, я же покажу, как это реализовать на статичном сайте (то есть сайте, находящемся не на CMS). Почему только на статичном? Потому что для различных CMS это реализовывается разными методами, о которых я также расскажу в последующих статьях.

Не утверждаю на 100%, что этот метод не будет работать на какой-то из CMS – пробуйте и о результатах отписывайтесь в комментариях.

Убираем .html, .php и .htm на Apache

Как вы знаете, в Apache существует файл .htaccess, который содержит в себе набор настроек и конфигураций сервера. С его помощью мы и будем убирать ненужные нам окончания.

1. Подключитесь к сайту по FTP и в корне сайта найдите файл .htaccess. Откройте его. Если такой файл отсутствует – создайте.

2. Найдите строчку, содержащую:

Сразу после нее вставьте следующие правила.

Читайте также:  Python работа со строками срез

Если вам необходимо убрать .php:

 RewriteCond %{REQUEST_FILENAME> !-f RewriteRule ^([^.]+)$ $1.php [NC,L]

Если вам необходимо убрать .html:

 RewriteCond %{REQUEST_FILENAME> !-f RewriteRule ^([^.]+)$ $1.html [NC,L]

Если вам необходимо убрать .htm:

 RewriteCond %{REQUEST_FILENAME> !-f RewriteRule ^([^.]+)$ $1.htm [NC,L]

Если строчка «RewriteEngine On» отсутствует в файле – добавьте ее в самое начало.

После чего сохраните изменения и отправьте файл обратно на сайт. Если раньше адреса на вашем сайте были вида

 https://www.pandoge.com/page.php

то теперь вы можете открыть эту страницу по адресу:

Убираем .html, .php и .htm на Nginx

1. Для того чтобы подобную настройку произвести в Nginx, откройте файл конфигурации по адресу:

в FTP (если вам позволяют права) либо через панель управления сервером.

2. Далее, в секцию location / , вставляем необходимые правила.

Если вам необходимо убрать .php:

Если вам необходимо убрать .html:

Если вам необходимо убрать .htm:

Если в процессе настройки у вас что-то не получается – пишите об этом в комментариях.

Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache

Источник

Как убрать .html в конце адреса каждой веб-страницы сайта, без использования php?

Читал, что можно убрать .html с помощью файла .htaccess, но весь код, который я видел для убирания .html написан на php.

А так как я использую бесплатный хостинг и на нем стоит запрет на использование php, то мне не удается убрать .html.
Можно ли как-то убрать расширение файла в конце адреса без использования php?
Java-скриптом, например.

RewriteEngine On RewriteCond % ! \.html$ RewriteCond % ! /$ RewriteRule ^(.*)$ $1.html

В htaccess. Обращение на /about будет открывать /about.html, к примеру

pandaa

RadCor

RewriteEngine on
RewriteBase /
RewriteCond % ^[A-Z]\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ site.ru/$1 [R=301,L]
RewriteCond % !(\.[^./]+)$
RewriteCond % !-d
RewriteCond % !-f
RewriteRule (.*) /$1.html
site.ru замени на домен твоего сайта.

В .htaccess. Обращение к /about.html перенаправляет на /about. Сам этот вариант использую, и вам советую.

vlar909

RadCor

у меня вот есть вот такой вариант, из минусов — он отдает 302

RewriteEngine on
RewriteCond % /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %.html -f
RewriteRule ^ %.html [NC,L]

ваш отдает 301 и редиректит как надо но только чистый url, если есть utm или get запросы выдает 404

Кто знает как объединить «позитивные» свойства первого и второго?

Это не «минус», а особенность, иногда желательная, иногда нет. Видите R=301 в коде, который в вопросе? А документацию по RewriteRule вы на сайте Apache читали?

Alien-Ka

а не вариант создать папку например «anything», в папке index.html и у тебя будет путь
«mysite.ru/anything/»??

DimaLepel

viktornaymayer

Код:
RewriteEngine On
RewriteCond % !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

Пояснение:
#Включаем механизм преобразования
RewriteEngine On
#Задаем условие «в url указан путь файла?»
RewriteCond % !-f
#Если да, то просто убираем html
RewriteRule ^([^\.]+)$ $1.html [NC,L]

Копипаста
#Задаем условие «в url указан путь файла?»
RewriteCond % !-f

Тут проверяется отсутствие в файловой системе физического файла, указанного в запросе,
и если окажется, что он есть (файл exmple.), то выведут именно его вместо желаемого (example.hml). Такое маловероятно, но возможно.

DModUA

ae_ph

У меня проблема с этим.
Расширение html удаляется в конце contact.html но добавляется site который портит всё.
site.ru/site/contact
Как это починить?

должно быть так
site.ru/contact

ae_ph

renat05, У меня заработало всё.
Единственно это не работает если файл называется /my_works т.е. сам файл my_works.html
Это работает только если файл без нижнего слеша в названии: /myworks
А как сделать так, что-бы это работало с нижним слешем я не знаю.
Если у вас есть решение тогда прошу написать его.

RewriteCond % !-f RewriteCond % !-d RewriteCond %.html -f RewriteRule ^.*$ $0.html [L,QSA] RewriteCond % ([^\s]*)\.html(\?[^\s]*)? RewriteRule (.*) %1 [R=301,L]

для тех кому нужно убрать расширение php из урла (адресной строки). код проверен и работает

Специально зарегался сказать, что эта тема сломала мне php скрипты и я 3 дня пытался понять, в чем дело, ворочая бэкапы, которые работали и вдруг перестали. Так вот, имейте в виду, решение покалеченное.

Войдите, чтобы написать ответ

Почему может не работать %20 в урле?

Источник

Как убрать index.html из URL

Предположим, вы заказали бесплатный хостинг для сайтов html в Рег.ру. По умолчанию когда вы открываете сайт в браузере, веб-сервер указывает в конце домена название индексного файла «index.html» или «index.php». Это негативно сказывается на поисковой позиции сайта. Для успешного продвижения в поисковых системах потребуется настройка переадресации с удалением «index.html» или «index.php» в конце адреса вашего сайта. Например, перенаправление с сайта «faq-reg.ru/index.html» на «faq-reg.ru»

Как убрать index.html или index.php через .htaccess

Откройте файл .htaccess в корневой директории сайта. Если у вас нет этого файла воспользуйтесь справкой: У меня нет файла .htaccess, что делать?

RewriteEngine On RewriteRule ^index\.html$ / [R=301,L]
RewriteEngine On RewriteRule ^index\.php$ / [R=301,L]

Если у вас несколько файлов index.html в разных папках, например, faq-reg.ru/support/index.html, вы можете убрать index.html из адресной строки, применив правило:

RewriteEngine On RewriteRule ^index\.html$ / [R=301,L] RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]

Если у вас несколько файлов index.php в разных папках, например, faq-reg.ru/support/index.php, вы можете применить правило:

RewriteEngine On RewriteRule ^index\.php$ / [R=301,L] RewriteRule ^(.*)/index\.php$ /$1/ [R=301,L]

Готово, после внесения правила в .htaccess ваш сайт будет открываться без index.html или index.php в конце URL.

Источник

Как правильно убрать .html в конце URL? Способ для HTML сайтов и Mobirise.

удаление .html расширения на конце страницы сайта

Поэтому, владельцы HTML сайтов, часто задаются вопросом ,а как убрать .html в конце адреса каждой веб-страницы?

Если у вас HTML сайт, или сайт на конструкторе сайтов Mobirise, вам нужно создать файл .htaccess и разместить его в корень вашего сайта на хостинге. Создать файл .htaccess, можно в любом текстовом редакторе. Однако, лучше это сделать в программе Notepad++ или аналогичной.

1-й Вариант файла .htaccess — самый оптимальный вариант.

Способ для HTML сайтов. В том числе и для тех сайтов, которые созданы в конструкторе сайтов Mobirise.

Файл .htaccess, должен содержать следующую информацию:

RewriteCond % ^[A-Z]\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://ВАШ_САЙТ/ [R=301,L]

Redirect 301 /index https://ВАШ_САЙТ

Где указанно ВАШ_САЙТ, необходимо указать URL вашего сайта. Если код не заработает, вставьте в самом начале следующую строку:

Файл .htaccess, нужно сохранить со следующим именем:

При этом, он должен быть без расширения. Сохраняйте его, БЕЗ расширения на конце файла! Если файл сохранился у вас с расширением (часто, это расширение .txt), выберите Переименовать файл и удалите расширение (при условии, если у вас в системе, настроено отображение расширений на конце файлов). При сообщении системы о том, что фал может перестать работать, Соглашаемся и подтверждаем действие. Вот скрин, как должен выглядеть сохраненный файл:

имя файла .htaccess

Данный код, что приведен выше, позволит вам не только убрать .html на конце страниц, а и удалить дубль главной страницы index.html, благодаря 301 редиректу, на ваш основной домен сайта. Также, у вас должен быть подключен на сайте SSL сертификат безопасности, так ка этот код, расчитан на сайты, которые работают по https:// протоколу.

2-й Вариант файла .htaccess — не на всех хостингах работает.

Используйте данный способ, если 1-й Вариант, у вас не работает.

Удаление .html в адресе страниц на сайте, созданном в Mobirise.
Создайте текстовый файл и назовите его .htaccess
Введите в него этот текст, сохраните его и загрузите в папку сайта на сервере.

3-й Вариант файла .htaccess — если не работает 2-й вариант.

Используйте данный способ, если 2-й Вариант, у вас не работает.

Аналогичный код со второго варианта, только удаляем строку:

При этом, 2-й и 3-й варианты, не удаляют дубль на главную страницу. При желании, вы можете добавить 301 редирект, в конце содержимого кода (через пробел на одну строку в конце основного кода, по аналогу с первым вариантом):

Где вместо ВАШ_САЙТ, указываем URL на свою главную страницу. Если не настроить 301 редирект, ваша главная страница сайта, будет открываться приблизительно так:

mobirise убрать html из url

исправление дублей страниц на сайте

На заметку.

Если у вас сайт на Mobirise, есть инструкция на официальном сайте Mobirise с информацией, как убрать .html на конце страницы. В принципе, если вышеприведенные варианты не сработают, воспользуйтесь данным способом, как последним вариантом.

Уже неоднократно сталкиваюсь, когда пользователи создают данный файл (файл .htaccess), с расширением на конце. Нередко, встречаю .txt на конце. Вот пример неверного файла:

файл .htaccess с ошибкой

Это — ОШИБКА. На конце файла, НЕ должно быть расширения. Только, название .htaccess

На хостинге, файл .htaccess, будет выглядеть так:

правильный .htaccess

Файлы .htaccess в данной заметке, применимы для всех HTML сайтов, в том числе и для сайтов, созданных в конструкторе Mobirise, что позволяет убрать html из url страниц. Способ рабочий и используется мною на всех сайтах HTML. Однако, при создании файла .htaccess, нет универсальных решений. Некоторые хостинги, не дают доступ к редактированию/созданию файла .htaccess и/или вносят ряд ограничений. При этом, в большинстве случаев, приведенные выше варианты, самые оптимальные и универсальные.

Нужен стабильный, безопасный и недорогой хостинг?

Безопасный, стабильный и доступный по цене хостинг. Узнать больше.

По просьбе пользователя в комментарии, добавляю вариант для тех, кому нужно убрать полностью index.html на всех страницах сайта. Используйте следующий код:

На некоторых хостингах, нужно добавлять в самом начале:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %/ -d
RewriteCond %.html !-f
RewriteRule [^/]$ %/ [R=301,L]RewriteCond % ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]RewriteCond %.html -f
RewriteRule [^/]$ %.html [QSA,L]RewriteRule ^index\.html$ / [R=301,L]RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]

И вот код, для первого варианта:

RewriteCond % ^[A-Z]\ /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?».

Если будут вопросы, поправки и дополнения – оставляйте комментарии.

Источник

Оцените статью