CNC на mod_rewrite

mod_rewrite

Вече разбрах как да правя CNC връзки. Но в някои по-прости случаи CNC връзките могат да бъдат направени чрез 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 включен
RewriteRule ^. * Article /(.*)$ index.php? View = article & id = $ 1

Тогава ще видите това: "Масив ([изглед] => статия [id] => 1)И тогава, мисля, че вече е ясно какво да правя с тези входни данни.

В тази статия съм показал, как се правят връзките cnc към mod_rewrite. И имайте предвид, че това е само обработка на входящите URL адрес. И също така е необходимо всички връзки на страниците да бъдат точно CNC. И за да направят това, те също трябва да бъдат заменени, а тук без PHP няма начин да го направя. Ако изведнъж не знаете, как да замените нормалните връзки към CNC, Силно препоръчвам да вземете този курс.

Добави към моите приятели Във връзка с: http://vk.com/myrusakov.
Ако искате да оцените мен и работата ми, напишете го в моята група: http://vk.com/rusakovmy.

Препоръчайте тази статия на приятелите си:

Ако сайтът ви е харесал, публикувайте връзка към него (на вашия сайт, във форума, в контакт):

Изглежда така:

  • BB-код на връзката за форуми (например можете да го поставите в подписа):
  • Коментари (7):

    Преди речта, и инструментът е да възстановите цената за nginx: http://winginx.com/ru/htaccess

    В платения урок "PHP/MySQL", когато създавате двигателя, това е форматът на URL адреса: http: // test /? View = article & id = 1 Включвам .htaccess - нулева реакция. Защо? Променете нещо в Денвър?

    Уважаеми Майкъл, моля, обяснете защо RewriteRule ^. * Article /(.*)$ index.php? View = article & id = $ 1 ред съдържа символите ". *" Преди "article". Доколкото разбирам, частта от пътя преди думата статия трябва автоматично да бъде пътят до папката, където се намира даденият .htaccess файл

    Реших да направя NC връзки чрез mod_rewrite и написах следното правило: RewriteEngine On RewriteRule ^ (. *)/(. *) $ Index.php? P = $ 1 & g = $ 2 [NC, L], параметрите са предадени, но стиловете вече не се зареждат на място! Кажи на Майкъл, какво може да бъде? Ако не ви е трудно, напишете правилното правило. Благодаря!

    Взех правило и го написах така: RewriteEngine On RewriteCond%! -D RewriteCond%! -F RewriteRule ^ (. *)/(. *)? index.php? p = $ 1 & g = $ 2 [QSA, NC, L], сега, когато сайтът е зареден, стиловете се зареждат, но изображенията не се зареждат. Какво не е наред с мен? Кажете ми кой знае какво още трябва да се направи с правилото?

    Имах същия проблем: CSS не се зарежда. Решението е следното: 1) Добавете ред за параметрите RewriteRule ^. * Articleblog /(.*)$ articleblog? Id = $ 1 [QSA] 2) Връзката към таблицата със стилове в заглавката трябва да съдържа "/ styles/main .css ", а не" стилове/main.css "(вижте/www.phpinfo.su/articles/practice/chpu_na_php.html) 3) за иконите същото условие като за стилове: пътят към иконата трябва да бъде"/images/avatars/icon. png ", а не" images/avatars/icon.png "