Как убрать расширение файла из адресной строки

Обновлено: 07.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Всем привет! Прочитал, что это можно сделать при помощи файла .htaccess. Создал файл в корневом каталоге сайта, т.е. там где лежат все файлы и папки директория www и прописал туда следующее:

Но ожидаемого результата это не принесло, все равно выводится название страницы с расширением php. Кто сталкивался с подобной проблемой и какие пути ее решения? Спасибо! __________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Как убрать расширение картинки в адресной строке?
Всем доброго времени суток! Подскажите, как из вида ?pic=3.jpg сделать ?pic=3 Вот так получаю.

Как сделать, чтобы в адресной строке не отображалось расширение php?
как сделать чтоб не высвечивалась приставка php? и заходить что б можно было


Как убрать /public/ в адресной строке?
.htaccess / AddDefaultCharset utf-8 RewriteEngine on RewriteCond %_%.

Ура заработало))) Мой код верный, просто надо было писать ссылки без расширения php!))) что бы не создавать новую тему спрашу здесь. скажите пожалуйста, как сделать, что бы вместо view.php?id=16
было view/16. Сделал вот так
но ничего не работает, в файле ссылка прописана тоже так.

Ну так измените

Добавлено через 1 минуту

, ну так это не работает. Если даже просто в адресной строке написать
view/6 то тоже не работает.( с вашим примером).

для этого надо их перекинуть в другую директорию, или изменить названия. Т.к. апач не всегда, к сожалению, смотрит на приставку ".php" в файлах, и поэтому иногда для него "view" и "view.php" - это одно и тоже.

перекинул, но не выходит.

ссылка должна быть такой, какой адрес вы хотите видеть Здравствуйте. Помогите разобраться - совсем голову сломала. Есть файл htaccess, в нем
после добавления строки
RewriteRule ^([^/]*)$ /?id=$1 [L] либо другой с флагом L
все перестает работать и выдает ошибку 500 Internal Server Error. В чем может быть проблема? прописал в .htacess , и не работает. Пишу ссылки без php. Или на денвере это не возможно? прописал в .htacess , и не работает. Пишу ссылки без php. Или на денвере это не возможно?

У меня это работает. Тоже на Денвере

Добавлено через 8 минут

прописал в .htacess , и не работает. Пишу ссылки без php. Или на денвере это не возможно? выдает ошибку 500 Internal Server Error. В чем может быть проблема?

Если я правильно поняла, то это:


Убрать расширение .html из адресной строки
Здравствуйте! У меня вопрос: я вроде понял как убрать расширение через .htaccess, но при этом.

Как можно спрятать расширение .aspx в адресной строке?
Привет всем! Скажите, как можно спрятать расширение .aspx в адресной строке?

Я проектирую веб-сайт. Я хочу, чтобы мой адрес веб-сайта выглядел следующим образом:

file name extensions like (PHP/JSP) are hidden

В качестве второго примера вы можете посмотреть адрес веб-сайта StackOverflow.

Кто-нибудь может помочь мне в этом? Благодарю!

ОТВЕТЫ

Ответ 1

Ответ 2

Сначала убедитесь, что модуль mod_rewrite установлен. Тогда будьте осторожны, чтобы понять, как это работает, многие люди понимают это задом наперед.

Вы не скрываете URL или расширения. То, что вы делаете, это создаете НОВЫЙ URL, который направляет на старый, например

Хотя каталог asdf не существует. Затем с установленным mod_rewrite вы помещаете это в .htaccess. По сути, он говорит, что если запрошенный URL-адрес НЕ является файлом и НЕ является каталогом, направьте его в мой скрипт:

Почти готово - теперь вам просто нужно написать кое-что в ваш PHP-скрипт, чтобы разобрать новый URL. Вы хотите сделать это так, чтобы старые тоже работали - вы поддерживаете систему, в которой переменная всегда одинакова, ИЛИ создаете таблицу базы данных, которая соотносит "SEO-дружественный URL" с идентификатором продукта. Примером может быть

/Some-Cool-Video (равняется идентификатору продукта в формате asdf)

Преимущество к этому? Поисковые системы будут индексировать ключевые слова "Some Cool Video". ASDF? Кто будет искать это?

Я не могу дать вам подробности, как это запрограммировать, но возьмите строку запроса, уберите конец

превращается в "asdf"

Затем установите переменную m в это

Таким образом, оба URL будут по-прежнему идти к одному и тому же

mod_rewrite может сделать много других важных вещей, Google для него и активировать его на вашем сервере (возможно, он уже установлен).

Ответ 3

У вас разные варианты. Один из них создает папку с именем "профиль" и переименует ваш "profile.php" в "default.php" и помещает его в папку "profile". и вы можете отдавать приказы на эту страницу следующим образом:

Если вы не удовлетворены, оставьте комментарий для сложных методов.

Ответ 4

Проблема с созданием каталога и хранением index.php в нем заключается в том, что

  • ваши ссылки с меню перестанут работать
  • Будет слишком много каталогов. Например, будет отдельный каталог для каждого вопроса здесь, в stackoverflow

Ответ 5

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

Я придумал это решение, потому что ни один из многих предложений .htaccess не работал у меня, и это было быстрее реализовать на PHP, чем пытаться выяснить, почему .htaccess не работал на моем сервере.

Поместите это в начало каждого файла PHP (желательно прежде всего):

Затем поместите эти функции в файл "scripts.php":

Очевидно, вам все равно нужно настроить Apache для перенаправления любого запроса без расширения на файл с расширением. Вышеупомянутое решение просто проверяет, имеет ли запрошенный URI расширение, если он запрашивает URI без расширения. Затем Apache перенаправляет файл с расширением, но только запрашиваемый URI (без расширения) отображается в поле адреса браузера. Преимущество состоит в том, что все ваши ссылки "href" в вашем коде могут по-прежнему иметь полное имя файла, то есть включая расширение .php.

Ответ 6

На самом деле, самый простой способ манипулировать этим -

  • Откройте новую папку на своем сервере, например. "Данные"
  • Поместите index.php(или index.html) в него

Таким образом, вы можете иметь полный контроль над этим, очень полезным для SEO.

Ответ 7

Пожалуйста, взгляните на блог выше, он дает более подробное объяснение

Ответ 8

так же, как Игорь, но должен работать без строки 2:

Ответ 9

Удалите файл Extenstion через .htaccess

htaccess правило для удаления расширения .php,.html и т.д. с url.

Ответ 10

Тони, ваш script в порядке, но если у вас есть 100 файлов? Нужно добавить этот код во все это:

include_once ( 'scripts.php');
strip_php_extension();

Я думаю, что вы включаете меню в каждый php файл (возможно, ваше меню отображается на всех ваших веб-страницах), поэтому вы можете добавить эти 2 строки кода только в свой файл меню. Эта работа для меня: D

Ответ 11

почти то же самое с первым ответом, но еще больше преимуществ.

Просто добавьте, если у вас есть другое расширение файла на ваших сайтах.

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

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

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

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

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

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

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

Однако, зачастую, этого не нужно. При этом, все зависит от каждого хостинга.

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

имя файла .htaccess

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

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

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

Код файла .htaccess:

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]

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

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

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

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 ]

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

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

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

На заметку.

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

Обратите внимание!

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

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

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

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

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

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

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

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

Добавлено 22.02.2021

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

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]

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

Должно быть так:

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]

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

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

Повторюсь, что настройки .htaccess, сильно зависят от каждого хостинга. Если у вас возникают проблемы с настройкой .htaccess на вашем хостинге, обратитесь за помощью к техподдержке своего хостинга.

RewriteEngine On
RewriteBase /
RewriteRule (.*)\\\\.html$ $1

Закоментируйте правило редиректа, вот так:

Благодарю! А как же всё таки правильно скрыть html в адресной строке?

Местная система комментариев добавляет лишние слеши.

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







От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

VPS - подходит для более сложных проектов с достаточно большой нагрузкой и посещаемостью до 10000 человек в сутки. Здесь мощность сервера фиксированная для каждого виртуального сервера, при этом сложность настройки увеличивается.

Выделенный сервер - нужен для очень сложных и ресурсоемких проектов. Для вас выделяют отдельный сервер,мощность которого будете использовать только вы. Дорого и сложно настраивать.

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

  • Облачный хостинг
  • Виртуальный хостинг
  • VPS/VDS
  • Выделенный сервер
  • Размещение сервера
  • CDN

CMS - это система управления контентом сайта. Хостеры стараются для каждой из них делать отдельный тариф или упрощать установку. Но в целом это больше маркетинговые ходы, т.к. у большинства популярных CMS нет специальных требований к хостингу, а те что есть - поддерживаются на большинстве серверов.

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера. С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

Безлимитный хостинг - хостинг у которого отсутствуют лимиты на количество сайтов, БД и почтовых ящиков, трафик, дисковое пространство и т.д. Обычно это больше маркетинговый трюк, но можно найти что-то интересное для себя.

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

  • Абузоустойчивый хостинг
  • Безлимитный хостинг
  • Безопасный хостинг
  • Черный список
  • Защита от DDOS
  • Конструктор сайтов
  • Партнерские программы
  • Реселлинг хостинга

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

  • Дешёвый хостинг
  • Дешевый VPS-хостинг
  • Цена-Качество
  • Дорогой хостинг
  • Бесплатный хостинг
  • VPS/VDS посуточно

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.

Читайте также: