1. Главная страница » Компьютеры

Http site index php

Автор: | 16.12.2019

Для устранения дублирования с 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-го часа — хорошо, но так не всегда, поэтому не надо это требовать и пытаться меня "наказать" флудом.

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

    А зачем удалять ? из 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]

    Второй вариант: 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, заменив на тот, что действителен сейчас.

    Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам — то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим.

    1. Подготовка базы данных. Создаём первую таблицу в БД MySQL

    Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке.
    В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:

    • page_id — идентификатор страницы (SMALLINT, primary key, auto_increment);
    • page_alias — псевдоним страницы для строки адреса ЧПУ (VARCHAR, 255);
    • page_title — название страницы в окне браузера (VARCHAR, 255);
    • page_meta_d — мета описание страницы для тега meta description (VARCHAR, 255);
    • page_meta_k — мета ключевые слова для тега meta keywords (VARCHAR, 255);
    • page_h1 — заголовок страницы (VARCHAR, 255);
    • page_s_desc — краткое описание материала, например если материалы сайта будут в виде блога (TEXT);
    • page_content — основной текст страницы, который будет выводиться в центральную колонку сайта (TEXT);
    • page_publish — содержит «Y» — если страница опубликована, или «N» — если она скрыта (CHAR, по умолчанию «Y»).

    Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги — соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д.

    2. Создаём файл конфигурации сайта

    В корневой папке сайта, которая должна быть пуста на данном этапе, создаём папочку «cfg», в ней с помощью .htaccess закрываем доступ директивой «deny from all». Создаём файл core.php следующего содержания:

    link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
    mysql_select_db($this->db);
    mysql_query(‘SET NAMES utf8’);
    >

    function close() <
    mysql_close($this->link);
    >

    function run($query) <
    $this->query = $query;
    $this->result = mysql_query($this->query, $this->link);
    $this->err = mysql_error();
    >
    function row() <
    $this->data = mysql_fetch_assoc($this->result);
    >
    function fetch() <
    while ($this->data = mysql_fetch_assoc($this->result)) <
    $this->fetch = $this->data;
    return $this->fetch;
    >
    >
    function stop() <
    unset($this->data);
    unset($this->result);
    unset($this->fetch);
    unset($this->err);
    unset($this->query);
    >
    >

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

    Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор Notepad++. В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 — конвертируйте файлы в UTF-8 without BOM — это поможет избежать проблем в будущем.

    3. Создаём index.php — главный контроллер сайта

    Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php — это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:

    // ГЛАВНЫЙ КОНТРОЛЛЕР
    switch ($_GET[option]) <
    case "page":
    include($_SERVER[DOCUMENT_ROOT]."/com/page.php");
    break;
    default:
    include($_SERVER[DOCUMENT_ROOT]."/com/home.php");
    break;
    >

    include ($_SERVER[DOCUMENT_ROOT]."/template.php");
    $db->close();

    Переменная $_GET[option] будет указывать главному контроллеру какой компонент сайта загружать при запросе. Сейчас в нашем сайте предусмотрено только два компонента: «страница» и «главная страница» (в принципе можно обойтись и одним компонентом вывода обычной страницы, но часто вид главной страницы сайта отличается от обычных страниц пунктов меню). Логика работы главного контроллера такова: из URL строки извлекается название нужного компонента (значение переменной $option), в зависимости от его значения подключается файл самого компонента (содержится в папке /com). Файл компонента выполняет все необходимые работы, извлекает из базы данные и записывает их в переменные, для передачи в шаблон дизайна. В самом конце подключается файл дизайна сайта, в который и передаются все переменные и данные, извлечённые в компонентах. Это звучит намного сложнее, чем работает.

    4. Создаём компонент вывода обычной страницы

    В корне сайта создаём папочку «com» — в ней будут храниться файлы компонентов. Компонент сайта, в моём понимании — это файл, в котором происходит обработка данных для разных разделов сайта. Например компонент обычной страницы извлекает из базы данных название, описание и текст материала, и записывает их в переменные $title, $meta_d, $meta_k, $content и др. Эти данные потом передаются в шаблон дизайна (под каждый компонент можно создавать свой шаблон дизайна) и выводятся пользователю в виде HTML-страницы. Например, компонент каталога, который можно создать в будущем, выполнял бы почти то же самое, но с данными про товары — а там своя специфика, другие поля в таблице, итд. По-этому для каждого функционального раздела сайта стоит создавать отдельный компонент. В схеме MVC (Model-View-Controller) компонент выполняет роль модели.

    Создаём в папке «com» файл «page.php». Содержимое файла следущее:

    run($query);
    $db->row();
    // ПЕРЕМЕННЫЕ КОМПОНЕНТА
    $ >data[page_id];
    $alias = $db->data[page_alias];
    $title = $db->data[page_title];
    $h1 = $db->data[page_h1];
    $meta_d = $db->data[page_meta_d];
    $meta_k = $db->data[page_meta_k];
    $s_desc = $db->data[page_s_desc];
    $component = $db->data[page_content];
    // ЕСЛИ СТРАНИЦЫ НЕ СУЩЕСТВУЕТ
    if (!$id) <
    header("HTTP/1.1 404 Not Found");
    $component = "ОШИБКА 404! Данной страницы не существует";
    >
    $db->stop();

    5. Создаём компонент вывода главной страницы

    Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта — это просто статья. Тем не менее создадим для неё отдельный компонент — на перспективу, так сказать.

    Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:

    $query = "SELECT * FROM wx_pages WHERE page_alias=’home’ LIMIT 1";

    6. Создаём шаблон дизайна всего сайта

    В корне сайта создаём файл template.php. По сути это обычный макет web-дизайна в формате HTML+CSS, только с PHP переменными в нужных местах. Между тегами title вставочка , в центральной колонке сайта вставочка и так по всему шаблону расставляем нужные переменные, которые объявлены в компонентах.

    В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css — можно настроить стили по своему усмотрению.

    7. Чистые ссылки и файл .htaccess

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

    RewriteEngine On
    RewriteBase /

    # ЗАПРЕЩЁННЫЕ ФАЙЛЫ
    RewriteRule .htaccess — [F]
    RewriteRule template.php — [F]

    # ПРАВИЛА mod_rewrite
    RewriteRule page/([a-z0-9_-]+)([/]<0,1>).htm$ index.php?option=page&alias=$1 [L]

    В будущем мы будем дописывать правила для компонентов поиска, каталога, блога статей и т.д. Смысл один: преобразовать ссылки вида «mysite.com/index.php?option=pages&alias=about» в ссылку вида «mysite.com/pages/about.htm» — смотрится довольно красиво. Старайтесь в разработке избегать массива $_GET в целях безопасности и не надеяться на него. Целесообразно хранить в нём только параметры для главного контроллера (переменная $option) и для компонента (переменная $alias).

    Также в каждой папке сайта «на всякий случай» создайте пустой файл index.html — это нужно для того, чтобы при обращении к каталогу через адресную строку ничего не отображалось.

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

    Мне необходимо реализовать свою собственную систему роутинга для некоторых задач. Для этого я использую свой скрипт prerouter.php, который подключается в начале главного файла index.php — файле, и занимается своими делами по программному преобразованию.

    Добрый день, если зайти на сайт по ссылке site.ru/category/name, то происходит переадресация на https://site.ru/index.php (404). При заходе на главную без https всё нормально, с неё без проблем переходит на внутренние. Если переходить по.

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

    Здравствуйте Настроил маршрутизацию следующим образом: http://i.imgur.com/23wByLu.png При этом все ссылки в магазине имеют вид http://site.ru/index.php/genre/action/itemname/ Вопрос: что такое это index.php и есть ли возможность от него.

    Здравствуйте,Как убрать /index.php/ из 2017.careprost.ru/index.php/* ?в настройках поселения /index.php/ нет.Как решить данную проблему? Помогите пожалуйста!

    Добрый день.Возникла сложность с решением проблемы по удалению с ссылки index.php. Сейчас все страницы идут в формате www.localhost/index.php/category/test/ пытаюсь исправить на формат www.localhost/category/test/ . Веб сервер apache2 модуль.

    Что-то не могу найти решения, как правильно сделать переадресацию. Раньше у клиента был mod_rewrite 0, теперь 1.Если попытаться открыть старый URL вида /index.php/product/123/ происходит циклическая переадресация.

    Здравствуйте!Столкнулись со следующей проблемой:Разрабатывали магазин на одном домене(kinderzon.com), потом в процессе работы было принято решение доменное имя сменить(на turktekstil.ru).К нему как 2я витрина был добавлен 2й.

    Я работаю на хостинге. У меня в административной панели webasyst вылетает 2 сайта: мойсайт.ru и мойсайт.ru/index.php Могли бы подсказать как это убрать, чтобы был только один сайт? только мойсайт.ru

    Не могу найти нахождение файла index.php После установки плагина в файле index.html основной темы дизайна вставите строчку: <$wa->block("shop.seo_pagination")> После:

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

    Добрый день! Сайт demo.profcosmetic.com , хостинг reg.ru. Пытался убрать из ссылок index.php изменив в wa_config/config.php в строке ‘mod_rewrite’ => ‘false’, на ‘mod_rewrite’ => ‘1’. В итоге главная.

    У меня хостинг и тема взяты на Webasyst.ru. Как найти файл index.php внутри облака или в принципе в админ-панели. Если никак, то как выйти на свой FTP? Нужен для установки счетчика Метрики и Аналитикс.

    При запросе site.ru/robots.txt время от времени идёт перенаправление на 404 страницу index.php — заметил это только спустя неделю, так как это перенаправление бывает не всегда.В чём может быть проблема? — .htaccess не менял.

    Всем привет. Подскажите, пожалуйста.У меня на хостинге сразу два магазина, несколько дней назад сайты начали выдавать ошибку "Parsererror", после обращения в службу поддержки, мне подсказали, что у меня в шаблоне лишний код:

  • Читайте также:  Be quiet straight power 11 850w

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *