Супербыстрый хостинг на SSD от 165р в месяц   •   Реклама
22 085 просм
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.
Проверенный  |  2

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

1.05 в 10:01
  • 1
Администратор  |  735

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

29.04 в 12:22
  • 3
Проверенный  |  2

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

29.04 в 09:52
  • 0
Администратор  |  735

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

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

location / {

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

}

8.06 в 01:54
  • 0
Гости  |  679

Привет!

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

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

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

rewrite ^ /$1 permanent;

}

Ос CentOs7 стоит nginx.

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

7.06 в 20:26
  • 0
Администратор  |  735

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

5.06 в 03:05
  • 0
Гости  |  679

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

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

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

5.06 в 01:55
  • 0
Администратор  |  735

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.

8.05 в 13:46
  • 0
Гости  |  679

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

7.05 в 20:29
  • 1
Гости  |  679

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

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

7.05 в 20:10
  • 0
Гости  |  679

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

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

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

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

7.05 в 19:35
  • 0
Администратор  |  735

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

20.04 в 23:51
  • 12
Гости  |  679

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

20.04 в 15:31
  • 0
Гости  |  679

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

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