Профессиональная поддержка сайтов: разработка, дизайн, тексты, SEO и прочее от 500 Р   •   Реклама
21 199 просм
11 комм
Поделиться:

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

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

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

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

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

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

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

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

RewriteEngine On

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

Если вам необходимо убрать .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

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

https://www.pandoge.com/page

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

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

/etc/nginx/nginx.conf

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

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

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

rewrite ^/([^.]+)$ /$1.php break;

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

rewrite ^/([^.]+)$ /$1.html break;

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

rewrite ^/([^.]+)$ /$1.htm break;

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

11
комментариев
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
1.05 в 10:01

Здравствуйте. Сработало. Но мне пришлось в самом файле в ссылках убрать окончание .php.

  • 1

Castezar, предоставьте адрес сайта и доступ к хостингу. Постараюсь помочь.

  • 3
29.04 в 09:52

Не сработало у меня почему-то. Уже второй день над проблемой бьюсь. Сайт самописный, использую localhost. При выгрузке на сайт на хостинг тоже не работает.

  • 0

Руслан, здравствуйте.

Попробуйте так:

location / {

rewrite ^/(.*)index\.(php|html|htm)$ /$1 redirect;

}

  • 0
7.06 в 20:26

Привет!

Подскажи плиз, как убрать index.php index.html для DLE. Уже реально мозг сломал, но не могу найти правильного решения.

Сейчас стоит такое решение, но из-за него не работает поиск.

if ($request_uri ~ "^/index.(php|html?)") {

rewrite ^ /$1 permanent;

}

Ос CentOs7 стоит nginx.

Заранее благодарен!

  • 0

Владимир, можно взглянуть на Ваш сайт? И что за CMS на нем?

  • 0
5.06 в 01:55

Все поставил по инструкции, но не сработало, может у меня другая проблема?

Вообще на старых страницах php расширения нет, но после создания нового раздела, на страницах в этом разделе появляется .php

данная инструкция к сожалению не помогла

  • 0

DH, убрать название чтобы осталось - https://vk.com/ ?c%5Bq%5D=%D1%8B% D0%B2%D0%B0%D1 %8B%D0%B2%D0%B0&c %5Bsection%5D=auto

Это не серьезно, все будет обрабатывать главная страница сайта.

А по остальному - пробуйте решить проблему через 301 редирект. По такому принципу работают чпу в DLE.

  • 0
7.05 в 20:29

было бы идеально если бы название файла тоже убиралось.

  • 1
7.05 в 20:10

https://vk.com/search ?c%5Bq%5D=%D1% 8B%D0%B2%D0%B0% D1%8B%D0%B2%D0%B0& c%5Bsection%5D=auto

вот пример такого запроса, расширение убрано а параметры после него остались.

  • 0
7.05 в 19:35

разъясню вместо Федора,

у многих сайтов какие то параметры передаются в виде значений переменных методом get, так вот как вернуть запрашиваемый файл

http://mysite.com/index.php ?variable1=znachenie1& variable2=znachenie2 &variableN=znachenieN

обычно результат возвращается в виде страницы с этой ссылкой, как убрать все что после названия файла, включая точку расширение и параметры переданные в запросе?

  • 0

Федор, то есть? Можно пример?

  • 12
20.04 в 15:31

А как можно убрать всё что идёт после .html

  • 0
4.12 в 09:03

Спасибо большое, помогло

  • 1
Подняться наверх
«Pandoge» - помощник веб-мастера