<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

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

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

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

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

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

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

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

ЧПУ на mod_rewrite

ЧПУ на mod_rewrite

Я уже разбирал в своё время, как сделать ЧПУ-ссылки. Но в некоторых более простых случаях ЧПУ-ссылки можно сделать через mod_rewrite. Вот об этом я расскажу в этой статье, а также покажу пример реализации подобного механизма.

Предположим, что Ваши ссылки имеют следующий вид:

http://mysite.ru/?view=article&id=1
http://mysite.ru/?view=article&id=2
http://mysite.ru/?view=article&id=3

А Вы хотите сделать их вот такими:

http://mysite.ru/article/1
http://mysite.ru/article/2
http://mysite.ru/article/3

Очевидно, что второй вариант проще, короче и, самое главное, будет лучше индексироваться поисковыми системами. Теперь разберём, как это можно сделать через mod_rewrite:

RewriteEngine on
RewriteRule ^.*article/(.*)$ index.php?view=article&id=$1

Здесь мы написали правило по которому, если запрашиваемый URL удовлетворяет регулярному выражению "^.*article/(.*)$" (например, такой URL пройдёт "http://mysite.ru/article/2"), то сделать "перенаправление" вот на этот адрес "index.php?view=article&id=$1", где $1 - содержимое первой (в нашем примере и единственной) группирующей скобки в регулярном выражении.

Обратите внимание, что "перенаправление" я указал в кавычках, поскольку для пользователя никакого перенаправления не происходит. У него URL в адресной строке никак не меняется, а остаётся прежним. А вот обращение происходит не к директории article и поддиректории 2, а к файлу index.php с соответствующим GET-запросом. Поэтому несмотря на отсутствие в URL из адресной строки браузера всяких GET-параметров, если выполнить в index.php следующий код:

<?php
  print_r($_GET);
?>

То Вы увидите вот это: "Array ( [view] => article [id] => 1 )". А дальше уже, думаю, понятно, что делать с этими входными данными.

В данной статье я показал, как делаются ЧПУ-ссылки на mod_rewrite. И обратите внимание, что это лишь обработка входящего URL. И ещё надо, чтобы на страницах все ссылки были именно ЧПУ. И чтобы это сделать, их тоже нужно заменять, и здесь без PHP никак не обойтись. Если вдруг Вы не знаете, как заменять обычные ссылки на ЧПУ, то настоятельно рекомендую пройти этот курс.

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

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

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

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

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

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

  1. Кнопка:

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

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

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

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

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

ppk-center ppk-center 26.02.2014 14:16:42

Также нужно запрещать доступ к неЧПУ ссылкам, а то получится дублирование.

Ответить

kruty kruty 01.03.2014 20:45:15

До речі, є інструмент що переробить це для nginx: http://winginx.com/ru/htaccess

Ответить

Ильюха Ильюха 18.11.2014 19:59:32

В платном уроке "PHP/MySQL" при создании движка как раз такой формат URL: http://test/?view=article&id=1 Включаю .htaccess - ноль реакции. Почему? Что-то в Денвере менять?

Ответить

Valery Valery 31.07.2015 11:14:20

Уважаемый Михаил, объясните пожалуйста, для чего в строке RewriteRule ^.*article/(.*)$ index.php?view=article&id=$1 стоят символы ".*" перед "article". Насколько я понимаю, часть пути перед словом article автоматически должна быть путём к папке, где лежит данный файл .htaccess

Ответить

Igori Igori 30.03.2016 09:02:38

Решил сделать ЧПУ ссылки через mod_rewrite и написал такое правило: RewriteEngine On RewriteRule ^(.*)/(.*)$ index.php?p=$1&g=$2 [NC,L], параметры передаются , а вот стили перестали подгружаться на сайт! Скажите Михаил, из-за чего это может быть? Если вам не трудно напишите верное правило. Спасибо!

Ответить

Igori Igori 30.03.2016 13:04:02

Подобрал правило, и написал так: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)/(.*)? index.php?p=$1&g=$2 [QSA,NC,L] , теперь при загрузке сайта стили подгружаются, а картинки не грузятся. Что у меня не так? Подскажите кто знает, что надо еще сделать с правилом?

Ответить

vpsev vpsev 23.09.2016 12:35:58

У меня были такие же проблемы: CSS не подгружается. Решение такое: 1) Добавляем строку для параметров RewriteRule ^.*articleblog/(.*)$ articleblog?id=$1 [QSA] 2) В ссылке на файл стилей в заголовке <link rel="stylesheet" href="/styles/main.css" type="text/css" /> должно быть "/styles/main.css" а не "styles/main.css" (см./www.phpinfo.su/articles/practice/chpu_na_php.html) 3) для иконок то же условие, что и для стилей: путь к иконке должен быть "/images/avatars/icon.png", а не "images/avatars/icon.png"

Ответить

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