Рабочий ЧПУ

Статус
В этой теме нельзя размещать новые ответы.

garo

Постоялец
Регистрация
27 Авг 2007
Сообщения
181
Реакции
113
Вот сделал чпу правда не на все страницы сайта но на основные работает:
1)Откройте файл index.php и найдите следующий код
$smarty->display("index.tpl.html");
Замените на следующий
/////////////////////////
// BEGIN CODE
/////////////////////////
if (CONF_FURL) ob_start();
$smarty->display("index.tpl.html");
if (CONF_FURL) {
$FURLs = ob_get_contents();
ob_clean();
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})\&/i', 'prod\\1.html?', $FURLs);
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})/i', 'prod\\1.html', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})\&/i', 'cat\\1.html?', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})/i', 'cat\\1.html', $FURLs);
$FURLs = preg_replace('/index.php\?show_aux_page=([0-9]{1,10})/i', 'page\\1.html', $FURLs);

$FURLs = preg_replace('/index.php\?show_price=yes/i', 'pricelist.html', $FURLs);
$FURLs = preg_replace('/index.php\?links_exchange=yes/i', 'links.html', $FURLs);
$FURLs = preg_replace('/index.php\?register=yes/i', 'register.html', $FURLs);
$FURLs = preg_replace('/index.php\?logging=yes/i', 'login.html', $FURLs);

$FURLs = preg_replace('/index.php\?feedback=yes/i', 'contact.html', $FURLs);
$FURLs = preg_replace('/index.php\?news=yes/i', 'news.html', $FURLs);
$FURLs = preg_replace('/index.php\?shopping_cart=yes/i', 'shopping_cart.html', $FURLs);
$FURLs = preg_replace('/index.php\?killuser=yes/i', 'logout.html', $FURLs);

$FURLs = preg_replace('/index.php\?/i', 'index.html?', $FURLs);
$FURLs = preg_replace('/index.php/i', 'index.html', $FURLs);

echo $FURLs;
}
/////////////////////////
// END CODE
/////////////////////////
2)Затем откройте файл .htacess
И вставьте туда
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^index.html$ index.php [L]
RewriteRule ^admin.html$ admin.php [L]

RewriteRule ^news.html$ index.php?news=yes [L]
RewriteRule ^pricelist.html$ index.php?show_price=yes [L]
RewriteRule ^links.html$ index.php?links_exchange=yes [L]
RewriteRule ^register.html$ index.php?register=yes [L]
RewriteRule ^login.html$ index.php?logging=yes [L]
RewriteRule ^contact.html$ index.php?feedback=yes [L]
RewriteRule ^news.html$ index.php?news=yes [L]
RewriteRule ^article.html$ index.php?article [L]
RewriteRule ^shopping_cart.html$ index.php?shopping_cart=yes [L]
RewriteRule ^logout.html$ index.php?killuser=yes [L]

RewriteRule ^page([0-9]*).html$ index.php?show_aux_page=$1 [L]

RewriteRule ^cat([0-9]*).html$ index.php?categoryID=$1 [NC]
RewriteRule ^prod([0-9]*).html$ index.php?productID=$1 [NC]
RewriteRule ^cat([0-9]*)-([0-9]*).html$ index.php?categoryID=$1&offset=$2 [NC]
RewriteRule ^cat([0-9]*)-all.html$ index.php?categoryID=$1&show_all=yes [NC]

</IfModule>
НА Этом всё о выявленных багах отписываемся ниже:ay::ay::ay:
 
А на какие странички ЧПУ нет?
 
о выявленных багах отписываемся ниже:ay::ay::ay:

протестировал тот ЧПУ который ты сделал.
плюс в том что работает расширенный поиск(во всех предыдущих не работал)

из багов заметил что не работает обсуждение товаров
не работает пролистывание категорий category-132.html?offset=10
Не работает ссылка "показать все" category-132.html?show_all=yes

Остальное вроде работает
 
  • Заблокирован
  • #4
Подскажиете новичку что такое ЧПУ?:confused:
 
Подскажиете новичку что такое ЧПУ?:confused:

почитай в википедии что это такое и не задавай глупых вопросов которых мог избежать если бы пользовался поиском по форуму или интернету

Я думаю что не одинок буду в своем мнении если скажу что посты таким образом нефик набивать
 
Дополнения

Адаптировал под один из своих книжных магазинов поэтому код имеет небольшие кижные термины:)
В индекс.пхп добавляем по инструкции топикстартера:
/////////////////////////
// BEGIN CODE
/////////////////////////
if (CONF_FURL) ob_start();
$smarty->display("index.tpl.html");
if (CONF_FURL) {
$FURLs = ob_get_contents();
ob_clean();
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})\&discuss=yes/i', 'book-\\1-obsujdenie.html', $FURLs);
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})\&/i', 'book-\\1.html?', $FURLs);
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})/i', 'book-\\1.html', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})\&offset=([0-9]{1,10})/i', 'category-\\1-books-from-\\2.html', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})\&show_all=yes/i', 'category-\\1-vse-knigi.html', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})\&/i', 'category-\\1.html?', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})/i', 'category-\\1.html', $FURLs);
$FURLs = preg_replace('/index.php\?show_aux_page=([0-9]{1,10})/i', 'page\\1.html', $FURLs);

$FURLs = preg_replace('/index.php\?show_price=yes/i', 'pricelist.html', $FURLs);
$FURLs = preg_replace('/index.php\?links_exchange=yes/i', 'links.html', $FURLs);
$FURLs = preg_replace('/index.php\?register=yes/i', 'register.html', $FURLs);
$FURLs = preg_replace('/index.php\?logging=yes/i', 'login.html', $FURLs);

$FURLs = preg_replace('/index.php\?feedback=yes/i', 'contact.html', $FURLs);
$FURLs = preg_replace('/index.php\?shopping_cart=yes/i', 'shopping_cart.html', $FURLs);
$FURLs = preg_replace('/index.php\?killuser=yes/i', 'logout.html', $FURLs);

$FURLs = preg_replace('/index.php\?/i', 'index.html?', $FURLs);
$FURLs = preg_replace('/index.php/i', 'index.html', $FURLs);

echo $FURLs;
}
/////////////////////////
// END CODE
/////////////////////////

В хттпакцесс по той же инструкии добавляем:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^index.html$ index.php [L]
RewriteRule ^admin.html$ admin.php [L]

//RewriteRule ^news.html$ index.php?news=yes [L]
RewriteRule ^pricelist.html$ index.php?show_price=yes [L]
RewriteRule ^links.html$ index.php?links_exchange=yes [L]
RewriteRule ^register.html$ index.php?register=yes [L]
RewriteRule ^login.html$ index.php?logging=yes [L]
RewriteRule ^contact.html$ index.php?feedback=yes [L]
RewriteRule ^news.html$ index.php?news=yes [L]
RewriteRule ^article.html$ index.php?article [L]
RewriteRule ^shopping_cart.html$ index.php?shopping_cart=yes [L]
RewriteRule ^logout.html$ index.php?killuser=yes [L]

RewriteRule ^page([0-9]*).html$ index.php?show_aux_page=$1 [L]

RewriteRule ^category-([0-9]*)-books-from-([0-9]*).html$ index.php?categoryID=$1&offset=$2 [NC]
RewriteRule ^category-([0-9]*)-vse-knigi.html$ index.php?categoryID=$1&show_all=yes [NC]
RewriteRule ^category-([0-9]*).html$ index.php?categoryID=$1 [NC]
RewriteRule ^book-([0-9]*)-obsujdenie.html$ index.php?productID=$1&discuss=yes [NC]
RewriteRule ^book-([0-9]*).html$ index.php?productID=$1 [NC]


</IfModule>

Ошибок вроде нет.
Кроме отображения новостей.
Новости отображаются без ЧПУ.
Т.к. не использую новости то не делал для отображения новостей ЧПУ
 
  • Заблокирован
  • #7
Странно, но у меня 500 ошибку выдало...

БУду колдовать дальше.
 
Адаптировал под один из своих книжных магазинов поэтому код имеет небольшие кижные термины:)
В индекс.пхп добавляем по инструкции топикстартера:


В хттпакцесс по той же инструкии добавляем:



Ошибок вроде нет.
Кроме отображения новостей.
Новости отображаются без ЧПУ.
Т.к. не использую новости то не делал для отображения новостей ЧПУ

т.е. все что не работало в версии преведущего автора в Вашем варианте работает?какая версия ШС?
насколько такие чупы нагружают сервер:) ?, а то у меня мастерхост и без чупов еле шевелиться :(
 
Новости не показывет с чпу и выдаёт 500 ошибку потому что строка
//RewriteRule ^news.html$ index.php?news=yes [L]
должна быть без
то есть вот так
RewriteRule ^news.html$ index.php?news=yes [L]

Кстати Flint вы исправили мои не дочёты теперь всё работает и всё благодаря общим усилиям.:)

Добавлено через 42 минуты
:)Вот внёс небольшие добавления и исправления теперь вроде всё работает
1)в .htaccess вставляем
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^index.html$ index.php [L]
RewriteRule ^admin.html$ admin.php [L]

RewriteRule ^news.html$ index.php?news=yes [L]
RewriteRule ^article.html$ index.php?article [L]
RewriteRule ^pricelist.html$ index.php?show_price=yes [L]
RewriteRule ^links.html$ index.php?links_exchange=yes [L]
RewriteRule ^register.html$ index.php?register=yes [L]
RewriteRule ^login.html$ index.php?logging=yes [L]
RewriteRule ^contact.html$ index.php?feedback=yes [L]
RewriteRule ^news.html$ index.php?news=yes [L]
RewriteRule ^article.html$ index.php?article [L]
RewriteRule ^shopping_cart.html$ index.php?shopping_cart=yes [L]
RewriteRule ^logout.html$ index.php?killuser=yes [L]

RewriteRule ^page([0-9]*).html$ index.php?show_aux_page=$1 [L]

RewriteRule ^category-([0-9]*)-texnika-from-([0-9]*).html$ index.php?categoryID=$1&offset=$2 [NC]
RewriteRule ^category-([0-9]*)-vsia-texnika.html$ index.php?categoryID=$1&show_all=yes [NC]
RewriteRule ^category-([0-9]*).html$ index.php?categoryID=$1 [NC]
RewriteRule ^texnika-([0-9]*)-obsujdenie.html$ index.php?productID=$1&discuss=yes [NC]
RewriteRule ^texnika-([0-9]*).html$ index.php?productID=$1 [NC]
RewriteRule ^article-([0-9]*).html$ index.php?art=yes&id=$1 [NC]

</IfModule>
и заменяем в index.php
$smarty->display("index.tpl.html");
на
/////////////////////////
// BEGIN CODE
/////////////////////////
if (CONF_FURL) ob_start();
$smarty->display("index.tpl.html");
if (CONF_FURL) {
$FURLs = ob_get_contents();
ob_clean();
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})\&discuss=yes/i', 'texnika-\\1-obsujdenie.html', $FURLs);
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})\&/i', 'texnika-\\1.html?', $FURLs);
$FURLs = preg_replace('/index.php\?productID=([0-9]{1,10})/i', 'texnika-\\1.html', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})\&offset=([0-9]{1,10})/i', 'category-\\1-texnika-from-\\2.html', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})\&show_all=yes/i', 'category-\\1-vsia-texnika.html', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})\&/i', 'category-\\1.html?', $FURLs);
$FURLs = preg_replace('/index.php\?categoryID=([0-9]{1,10})/i', 'category-\\1.html', $FURLs);
$FURLs = preg_replace('/index.php\?show_aux_page=([0-9]{1,10})/i', 'page\\1.html', $FURLs);

$FURLs = preg_replace('/index.php\?news=yes/i', 'news.html', $FURLs);
$FURLs = preg_replace('/index.php\?art=yes\&id=([0-9]{1,10})/', 'article-\\1.html', $FURLs);
$FURLs = preg_replace('/index.php\?show_price=yes/i', 'pricelist.html', $FURLs);
$FURLs = preg_replace('/index.php\?links_exchange=yes/i', 'links.html', $FURLs);
$FURLs = preg_replace('/index.php\?register=yes/i', 'register.html', $FURLs);
$FURLs = preg_replace('/index.php\?logging=yes/i', 'login.html', $FURLs);

$FURLs = preg_replace('/index.php\?feedback=yes/i', 'contact.html', $FURLs);
$FURLs = preg_replace('/index.php\?shopping_cart=yes/i', 'shopping_cart.html', $FURLs);
$FURLs = preg_replace('/index.php\?killuser=yes/i', 'logout.html', $FURLs);

$FURLs = preg_replace('/index.php\?/i', 'index.html?', $FURLs);
$FURLs = preg_replace('/index.php/i', 'index.html', $FURLs);

echo $FURLs;
}
/////////////////////////
// END CODE
/////////////////////////
и конечно же отписываемся:)
 
извиняюсь за офф я ламер в раскрутке , насколько полезны чупы для Яши , Гугля и Рамы - стоит ли нагружать сервер,делать загрузку страниц чуть тормазнее? если вроде для поисковика нет разницы??? :nezn:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху