Index php как избавиться

Как убрать index.php из URL

Для устранения дублирования с 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?id=5 превратится в http://ваш_сайт/?id=5.

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

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

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

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

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

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

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

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

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

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

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

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

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

    А зачем удалять ? из URL, тогда страницы просто открываться не будут. Поскольку файла не существует. А если нужно избавиться от вопроса, то достаточно убрать ссылки, чтобы пользователи по ним не переходили, а заменить их на другие, без ?. Всё это ЧПУ называется: http://myrusakov.ru/php-furl.html

    Я хочу чтобы было так: /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]

    Второй вариант: 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 Я не заставлял и не принуждал Вас ставить данный плагин

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

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

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

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

    Источник

    Как убрать index.php в Joomla 3

    Время на чтение: 3 минуты

    Краткость — это сестра таланта и любимица поисковиков. Гугл и Яндекс обожают, когда у сайтов аккуратные URL, а не километровые наборы цифр и букв с указанием php файла index в тексте ссылки. Если вы только недавно обзавелись сайтом, или уже давно им управляете и до сих пор не избавились от назойливого упоминания php файла index, тогда вам срочно необходимо убрать его, изменив настройки движка Joomla 3. В данной статье разберем два метода, как этом можно сделать.

    Почему лучше убрать php файл index из URL

    Здесь нет ничего страшного в том, что у вас отображается php файл index в адресе ссылки. Ваш сайт от этого не забанят и не кинут в какой-нибудь фильтр. Но со временем вы поймете, что позиции его значительно ухудшаются по сравнению с тем, если бы в адресе не указывался index. Этот php фрагмент попросту дублирует страницу. Если вы попробуете зайти на страницу, введя, к примеру http://ваш_сайт_ру/страница/ и http://ваш_сайт_ру/index.php/страница/, то вы попадете в идентичную часть сайта.

    То есть из-за наличия php файла index в содержании URL появляются дубли ресурса, что может негативно отразиться на индексации одного из зеркал.

    Дабы избавиться от подобных проблем в качестве профилактики лучше сразу позаботиться о своем проекте, и убрать index.php в настройках Joomla.

    Как убрать index.php — метод № 1

    Joomla 3 — замечательная версия движка. В этой версии есть возможность активировать некоторые SEO-функции прямо через админку без добавления специальных плагинов на сайт. Эти SEO-функции расположены в «Настройках» во вкладке «Система» и «Настройки SEO». Как раз в этой части панели управления вы и найдете пункт, ответственный за добавление index.php к ссылке. Почему-то Joomla по умолчанию активирует эту функцию, хотя она вредит ресурсу.

    Читайте также:  Чем можно избавиться от пищевой моли

    В настройках SEO вы сможете активировать ЧПУ-ссылки, алиасы и многое другое. Чтобы убрать index.php из ссылок, вам необходимо включить функцию «Перенаправление URL». Благодаря активации данной функции движок Joomla будет перехватывать ссылки на страницы с index.php и перенаправлять на необходимые вам URL страницы.

    Учтите, что функция не заработает, если вы через FTP-менеджер не переименуете файл htaccess.txt в .htaccess. По сути, вам нужно будет просто убрать в конце .txt и перенести точку в начало названия файла. Это звучит как пустяк, но без такого действия перенаправление URL не заработает. Иногда даже после этого на сайте могут возникнуть ошибки, в частности 404 ошибка редиректа. В таком случае, попробуйте переименовать файл htaccess.txt не при помощи FTP-менеджера, а через специальное приложение Notepad++. Некоторым такая корректировка действий помогает.

    Как убрать index.php в Joomla? — метод № 2

    В целом, второй метод очень похож на первый. Вам точно так же необходимо будет зайти в админку движка и в разделе «Настройки SEO» активировать функцию перенаправлению URL. Но только данный метод рассчитан на обход частой ошибки 500, которая возникает во время попыток убрать навязчивый index.php из ссылок.

    Чтобы это осуществить, вам необходимо внести в файле htaccess.txt мелкую корректировки. А именно от вас потребуется перед строкой Options +FollowSymLinks прописать штрих — #. Далее, как и в предыдeщей инструкции, вам необходимо переименовать файл htaccess.txt в .htaccess. После этого все должно заработать. Если даже такие изменения не помогли, тогда необходимо обратиться к хостинг-провайдеру. Перенаправление URL заработает только в том случае, если на сервере работает функция «mod_rewrite». Если это не так, то попросите у технической поддержки ее активировать. Они должны вам помочь. И тогда index.php наверняка уберется из URL, а ваш сайт начнет улучшать позиции в поиске.

    Источник

    Автоматически убираем index.php через .htaccess

    Убираем /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 файле (если его нет, то создайте) нужно добавить такой код:

    Источник

    Оцените статью
    Избавляемся от вредителей