- Убираем .html, .php и .htm в конце URL-адресов на Apache/Nginx
- Убираем .html, .php и .htm на Apache
- Убираем .html, .php и .htm на Nginx
- Как убрать .html в конце адреса каждой веб-страницы сайта, без использования php?
- Войдите, чтобы написать ответ
- Почему может не работать %20 в урле?
- Как убрать index.html из URL
- Как убрать index.html или index.php через .htaccess
- Как правильно убрать .html в конце URL? Способ для HTML сайтов и Mobirise.
Убираем .html, .php и .htm в конце URL-адресов на Apache/Nginx
Часто слышу, что сеошники советуют убирать окончания .html, .php и .htm в адресах ваших сайтов – якобы, это негативно влияет на продвижение. Кто-то же говорит, что это просто визуально добавляет адресу лишний мусор.
В любом случае, убирать или оставлять эти окончания, решать вам, я же покажу, как это реализовать на статичном сайте (то есть сайте, находящемся не на CMS). Почему только на статичном? Потому что для различных CMS это реализовывается разными методами, о которых я также расскажу в последующих статьях.
Не утверждаю на 100%, что этот метод не будет работать на какой-то из CMS – пробуйте и о результатах отписывайтесь в комментариях.
Убираем .html, .php и .htm на Apache
Как вы знаете, в Apache существует файл .htaccess, который содержит в себе набор настроек и конфигураций сервера. С его помощью мы и будем убирать ненужные нам окончания.
1. Подключитесь к сайту по FTP и в корне сайта найдите файл .htaccess. Откройте его. Если такой файл отсутствует – создайте.
2. Найдите строчку, содержащую:
Сразу после нее вставьте следующие правила.
Если вам необходимо убрать .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, к примеру
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. Сам этот вариант использую, и вам советую.
у меня вот есть вот такой вариант, из минусов — он отдает 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 читали?
а не вариант создать папку например «anything», в папке index.html и у тебя будет путь
«mysite.ru/anything/»??
Код:
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). Такое маловероятно, но возможно.
У меня проблема с этим.
Расширение html удаляется в конце contact.html но добавляется site который портит всё.
site.ru/site/contact
Как это починить?
должно быть так
site.ru/contact
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 сайт, или сайт на конструкторе сайтов 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), выберите Переименовать файл и удалите расширение (при условии, если у вас в системе, настроено отображение расширений на конце файлов). При сообщении системы о том, что фал может перестать работать, Соглашаемся и подтверждаем действие. Вот скрин, как должен выглядеть сохраненный файл:
Данный код, что приведен выше, позволит вам не только убрать .html на конце страниц, а и удалить дубль главной страницы index.html, благодаря 301 редиректу, на ваш основной домен сайта. Также, у вас должен быть подключен на сайте SSL сертификат безопасности, так ка этот код, расчитан на сайты, которые работают по https:// протоколу.
2-й Вариант файла .htaccess — не на всех хостингах работает.
Используйте данный способ, если 1-й Вариант, у вас не работает.
Удаление .html в адресе страниц на сайте, созданном в Mobirise.
Создайте текстовый файл и назовите его .htaccess
Введите в него этот текст, сохраните его и загрузите в папку сайта на сервере.
3-й Вариант файла .htaccess — если не работает 2-й вариант.
Используйте данный способ, если 2-й Вариант, у вас не работает.
Аналогичный код со второго варианта, только удаляем строку:
При этом, 2-й и 3-й варианты, не удаляют дубль на главную страницу. При желании, вы можете добавить 301 редирект, в конце содержимого кода (через пробел на одну строку в конце основного кода, по аналогу с первым вариантом):
Где вместо ВАШ_САЙТ, указываем URL на свою главную страницу. Если не настроить 301 редирект, ваша главная страница сайта, будет открываться приблизительно так:
На заметку.
Если у вас сайт на Mobirise, есть инструкция на официальном сайте Mobirise с информацией, как убрать .html на конце страницы. В принципе, если вышеприведенные варианты не сработают, воспользуйтесь данным способом, как последним вариантом.
Уже неоднократно сталкиваюсь, когда пользователи создают данный файл (файл .htaccess), с расширением на конце. Нередко, встречаю .txt на конце. Вот пример неверного файла:
Это — ОШИБКА. На конце файла, НЕ должно быть расширения. Только, название .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?».
Если будут вопросы, поправки и дополнения – оставляйте комментарии.