<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

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

Как убрать 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.

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

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

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

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

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

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

Комментарии (37):

wanderer wanderer 24.04.2013 17:57:40

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

Ответить

Admin Admin 24.04.2013 21:21:38

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

Ответить

wanderer wanderer 24.04.2013 21:25:08

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

Ответить

Admin Admin 24.04.2013 21:48:17

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

Ответить

wanderer wanderer 24.04.2013 22:18:43

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

Ответить

Admin Admin 25.04.2013 11:07:39

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

Ответить

masik-new masik-new 25.04.2013 13:31:54

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

Ответить

Admin Admin 25.04.2013 18:42:52

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

Ответить

GoTo GoTo 03.05.2013 22:29:49

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

Ответить

Admin Admin 04.05.2013 11:30:59

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

Ответить

web-magician web-magician 28.10.2016 07:03:02

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

Ответить

morozov-semen morozov-semen 11.05.2013 17:59:51

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

Ответить

razor2211 razor2211 08.07.2013 16:04:35

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

Ответить

worker71 worker71 26.09.2013 12:50:06

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

Ответить

gamevitrix gamevitrix 06.10.2013 15:24:52

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

Ответить

forest67 forest67 19.11.2013 00:26:54

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

Ответить

tikkiwiki tikkiwiki 19.11.2013 11:19:09

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

Ответить

forest67 forest67 20.11.2013 23:44:04

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

Ответить

tikkiwiki tikkiwiki 21.11.2013 10:54:52

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

Ответить

tikkiwiki tikkiwiki 21.11.2013 11:28:35

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

Ответить

tikkiwiki tikkiwiki 21.11.2013 11:34:14

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

Ответить

tikkiwiki tikkiwiki 22.11.2013 12:24:23

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

Ответить

forest67 forest67 23.11.2013 03:33:03

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

Ответить

alexandrdante alexandrdante 23.11.2013 04:04:08

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

Ответить

forest67 forest67 24.11.2013 00:26:00

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

Ответить

alexandrdante alexandrdante 24.11.2013 00:36:33

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

Ответить

forest67 forest67 24.11.2013 12:54:00

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

Ответить

alexandrdante alexandrdante 25.11.2013 14:50:32

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

Ответить

forest67 forest67 26.11.2013 01:16:41

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

Ответить

tikkiwiki tikkiwiki 26.11.2013 09:58:00

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

Ответить

forest67 forest67 28.11.2013 00:41:08

Здравствуйте Александр. Именно так и попробую сделать. Отпишусь о результатах.

Ответить

Yurez Yurez 25.01.2014 20:47:03

Здравствуйте. А скажите, с "правильной" индексацией страниц от этого проблем не будет? Я таким способом убрал "category.php". Но когда наводишь на ссылку, она внизу показывается С "category.php", а открывается уже БЕЗ... Так же как и "index.php" показывается с ним, а открывается уже без...

Ответить

alexandrdante alexandrdante 25.01.2014 20:57:28

нет,не будет. Поисковые системы понятливы)

Ответить

Yurez Yurez 25.01.2014 20:58:58

Ну, будем надеяьтся. Спасибо )

Ответить

Kopyraiter Kopyraiter 23.09.2014 19:28:42

Приветствую. А как убрать данную приставку на субдомене для DLE?

Ответить

alepron alepron 28.03.2015 16:35:15

А как быть, если в index.php есть POST-форма, которая в экшене использует этот же index.php? Использую пример .htaccess из данной статьи, и у меня при обработке формы каждый раз вывод, как при вызове index.php без параметров.

Ответить

serega-syper serega-syper 11.01.2016 23:03:35

У меня немного другая проблема. при подтверждения ссылки через почту меняется адрес ссылки http://www.сайт.ru/users/email_confirmation/?user_id=369&key=be0cc38f02eb6c52b9cb8faeb1e8d728 на https://www.сайт.ru/index.php?user_id=369&key=be0cc38f02eb6c52b9cb8faeb1e8d728 делал как вы советовали, index убрался, но users/email_confirmation/? куда то пропадает, как можно исправить? стоит редикер с http на https

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.