Htaccess убрать index php

Htaccess убрать index php

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

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

Добавьте в конце файла .htaccess одно из правил, которое подходит для вашего случая:

Для устранения дублирования с index.php (когда http://ваш_сайт и http://ваш_сайт/index.php ведут на одну страницу) надо удалить один из вариантов. Как правило, надо удалить index.php из URL, то есть чтобы при обращении к http://ваш_сайт/index.php шёл автоматический редирект на http://ваш_сайт. Давайте с Вами это сделаем.

Один из вариантов удаления index.php из адреса — это использовать PHP, но не будем его использовать, так как если у Вас есть Apache (а обычно он и имеется), то лучше использовать mod_rewrite.

Для удаления index.php из URL надо в htaccess написать следующий код:

RewriteEngine On
RewriteRule ^index.php$ / [QSA,R]

После этого, например, такая ссылка http://ваш_сайт/index.php превратится в http://ваш_сайт/, а http://ваш_сайт/index.php? >

Что касается создания htaccess, то об этом писалось в этой статье: создание htaccess.

Вот так легко можно убрать index.php из URL с помощью htaccess, тем самым, уничтожив дублирование страниц, которое так не любят поисковые системы.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 38 ):

    зачем удалять комментарии?

    Потому что комментарий "ау" не несёт смысловой нагрузки, и иначе как спамом его не назовёшь. А что касается того вопроса, то он был удалён за этот спам. Такие комментарии допускаются, если спустя сутки я не ответил на вопрос, а через 1 час я не могу отвечать на каждый комментарий, поэтому спамить и засорять сайт не нужно. Если у меня получается ответить в течение 1-го часа — хорошо, но так не всегда, поэтому не надо это требовать и пытаться меня "наказать" флудом.

    Читайте также:  Lga 1150 и 1151 совместимость процессоров

    Никто не пытался наказать, был сильный интерес. Прошу прощения. Так вы ответите?

    А зачем удалять ? из URL, тогда страницы просто открываться не будут. Поскольку файла >

    Я хочу чтобы было так: /id3242

    Вот и делайте такие ссылки, а затем по той статье обрабатывайте их и выводите соответствующие страницы.

    Спасибо за понятную и доступную статью! Все прекрасно заработало! Дополнительный вопрос. Для удаления www прописаны строки RewriteEngine On RewriteCond % ^www.jobshome$ [NC] RewriteRule ^(.*)$ http://jobshome/$1 [R=301,L] Но почему-то теперь не работает. Как быть?

    http://myrusakov.ru/sajt-www-bez.html — вот здесь точно рабочий код.

    Михаил, а если уже есть такой код: RewriteEngine On RewriteCond % ^www.kipros.ru$ [NC] RewriteRule ^(.*)$ http://kipros.ru/$1 [R=301,L] ErrorDocument 404 /404.html AddDefaultCharset UTF-8 то как правильно добавить RewriteRule?

    Просто в конец добавить: RewriteRule ^index.php$ / [QSA,R]

    У меня не получилось! Не знаю что такое Apache и где его искать. Если выставляю ЧПУ сайт вылетает в ошибку! Если файл htaccess сделаю таковым .htaccess сайт вылетает в ошибку, поэтому он у меня такой htaccess.txt как быть в таком случае? Главное на одном хостинге у меня 2 форума в одном после установки галочки ЧПУ index.php перестал показываться, а на этом форуме ничего не помогает, может кто подскажет в чем проблема?

    Есть ещё один метод: RewriteEngine On RewriteCond % ^[A-Z]<3,9> /index.php HTTP/ RewriteRule ^index.php$ http://mysite.com/ [R=301,L]

    Михаил, а как сделать противоположную задачу, чтобы подставлялось index.php

    Добавил данный код. В денвере со всех страниц где есть index.php теперь перекидыват на http://localhost/denwer/ Вопрос а данный способ потходит для такой ситуации http://site/forum/index.php должно остаться http://site/forum/ я правильно понял? а остаеться http://localhost/denwer/ Ура, заработало! ))

    Все работает, спасибо Михаилу

    RewriteRule ^index.php$ / [QSA,R] У меня почему-то этот код редиректит абсолютно все страницы на главную. Может еще надо было что-то сделать?

    Здравствуйте autoevo. Попробуйте так: RewriteCond % !-d RewriteCond % !-f RewriteRule ^(.*)$ index.php [L,QSA]

    Здравствуйте Александр. К сожалению в таком варианте выдает ошибку 500. У вас есть еще какие ни будь мысли по этому поводу? Был бы очень признателен.

    Здравствуйте autoevo. Неверный синтаксис файла .htaccess или наличие в нем не поддерживаемых директив приводит к данной ошибке (500). Удалите старое и попробуйте так: RewriteRule ^index.php/$ "http://test.com/" [R=301,L] Только замените на имя адрес Вашего сайта, вместо test.com Второй вариант(более практичный): RewriteCond % ^GET .*/index.php HTTP RewriteRule ^(.*)index.php$ /$1 [R=301,L] Третий вариант: RewriteEngine on Options +FollowSymLinks RewriteBase / RewriteCond % ^[A-Z]<3,20> /index.php(.*) HTTP/ RewriteRule ^index.php$ http://имя-вашего-домена/$1 [R=301,L]

    Читайте также:  Блок питания exegate 350w

    Второй вариант: RewriteCond % ^GET .*/index.php HTTP RewriteRule ^(.*)index.php$ /$1 [R=301,L]

    Третий вариант: RewriteEngine on — Внимательно обратите внимание, чтобы был ON. Options +FollowSymLinks — тоже обязательно, для магии:) RewriteBase / -устанавливает базовый URL для преобразований в контексте каталога Сам редирект: RewriteCond % ^[A-Z]<3,20> /index.php(.*) HTTP/ RewriteRule ^index.php$ http://имя-вашего-домена/$1 [R=301,L]

    Доброе утро, autoevo. Ваше сообщение я увидел и вынужден его удалить, т.к оно слишком большое и не несет смысловой нагрузки, больше оно не понадобиться. Я идентифицировал, что Вы используйте CMS Joomla. Первый вариант решения: Включите "Использовать mod_rewrite" в основных настройках.(Перенаправление URL). Но для начала зайдите в htaccess.txt, переименовываем в .htaccess , потом открываем и перед строчкой Options +FollowSymLinks ставим символ #. Если вы все правильно сделаете то у Вас все замечательно будет работать, если же не закоментировать нужную строчку в файле .htaccess то на сайте будет отображаться ошибка 500. Второй вариант решения: Чтобы облегчить Вам решение данной проблемы, предлагаю скачать специальный плагин com_joomsef, найти его и скачать не сложно. Внимательно! Обратите внимание на версию CMS Joomla которую Вы используйте и скачайте для соответствующей версии данный плагин.

    Здравствуйте. .htaccess на момент переписки уже был, mod_rewrite включен, SEF включен, плагин sef.php имеется. Как вы рекомендовали, закоменнтировал Options +FollowSymLinks, но похоже изменений нет. Если вписать в урл index.php, то страница отображается и с таким урлом. Что то мне грустно от этой всей истории становится, дубли — это еще не все проблемы.

    Значит Вы что-то делаете не так. Утром прочту и посмотрю,что Вам ответить. Технология верна. используйте другие плагины.что мешает?например sh404sef

    Приехали. Установил sh404sef, перестали отображаться некоторые категории (404). Появились дубли, например — http://www.autoevo.net/advice продублирован http://www.autoevo.net/index.php/Table/Полезные советы/ но с ошибкой 404. Отключил, очистил кэш — все так и осталось.

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

    Читайте также:  Apc smart ups 750 характеристики

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

    Если не найдёте,то пишите. Будем решать как-то. Но тогда придётся показать сайт и рассказать,как конкретно ставили плагин

    Здравствуйте. Скачал и установил рабочий плагин через админку. В этот раз поступил благоразумнее — поставил на копию сайта на поддомене. Надо еще разбираться, так как плагин сразу же начинает переписывать по-своему ссылки. По поводу показать сайт, я бы вообще был бы рад если бы кто то позанимался с ним. После обновления движка там куча проблем. Могли бы вы мне в этом помочь?

    Здравствуйте autoevo. Используйте документацию, чтобы правильно настроить sh404sef. Если надо, сами поправьте ссылки и желательно скачайте чистый .htaccess для Joomla, заменив на тот, что действителен сейчас.

    Убираем /index.php с 301 редиректом

    Каждую страницу которая заканчивается на / можно открыть и через /index.php. Думаю, каждый более-менее уважаемый вебмастер это знает и вдаваться в подробности не стоит. Мы думаем, что это не сильная проблема как для людей, так и для поисковых роботов. Но все же, что-бы было на 100% правильно, давайте сделаем так, что если страница открывается через слэш, то ее нельзя было открыть через /index.php или /index.html. Естественно, везде должен отадаваться 301 редирект. чтобы ранее проставленные ссылки не теряли свой вес.


    Результат работы скрипта

    Как забирать окончание /index.php в Битриксе

    Битрикс самая популярная коммерческая CMS, да и мы ее используем, поэтому давайте рассмотрим пример на ней. Многие вебмастера пытаются решить подобную задачу через php, записав код в init.php. но тут возникает 2 ошибки:

    • Редирект не будет работать при композите, потому что композит не грузит ядро битрикса;
    • Большая нагрузка на сервер, т.к. запускается Apache для редиректа.

    Вообщем, правильно делать такой редирект исключительно через.htaccess файл. Откроем файл .htaccess, который лежит в корне битрикса и просто добавим 2 строчки кода. RewriteBase / нужно дописать после RewriteEngine On, а в конец всех правил добавим RewriteRule ^(.*)index.php$ $1 [R=301,L]. Естественно, все в конструкции должно лежать. Код:

    Забирать окончание /index.php через .htaccess

    Если у вас не битрикс, то в корне сайта в .htaccess файле (если его нет, то создайте) нужно добавить такой код:

    Ссылка на основную публикацию
    High speed hdmi cable with ethernet
    Приветствую всех посетителей блога о компьютерах. Сегодня бы очень хотелось поведать читателям о так называемом HDMI кабеле, с помощью которого...
    Freedom planet 2 дата выхода
    Даты выхода Дата выхода - это та временная черта, после которой игра считается вышедшей, что обычно подразумевает, что ее уже...
    Friday the 13th the game xbox one
    Готовы ли вы столкнуться с бессмертным злом, ужасом во плоти? Тогда мультиплеерный ассиметричный экшен Friday the 13th: The Game для...
    Highscreen pure j 4pda прошивка
    Внимание! Использование инструментов для перепрошивки неопытными пользователями может привести к выходу аппарата из строя. Установка этого обновления приведет к полному...
    Adblock detector