Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализацпия ЧПУ, Как реализовать замену url 
:(
    Опции темы
zetxi815eb
Дата 25.2.2009, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Имеется скрипт просмотра статей

http://mysite.ru/view_article.php?id=1

Мне надо чтобы в строке запроса отображалось например


http://mysite.ru/statia_o_mirivom_ekonomic...om_krizise.html

ЧПУ для каждой статьи хранится в базе данных...но вот как его заменять???
Перерыл весь интернет...везде пишут как пользоваться mod_rewrite, 
но мне там только о настройках .htaccess

Как пределать управление этим делом скрипту...и как заменить url на мой ЧПУ из базы?

 smile  smile  smile 
PM MAIL   Вверх
rMaveric
Дата 25.2.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: 2
Всего: 6



Один из самых простых способов следующий:

Код

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Это твой будущий .htaccess

Данный набор правил перенаправляет все запросы на файлик index.php, если они не ведут к реально существующей директории или файлу.\

А внутри этого самого index.php ты разбераешь какой запрос был сделан и в зависимости от него возвращаешь контент. Способов это сделать мильёон, и рассказывать о них не вижу смысла.

З.Ы.
Главное не забудь обработать 404 ошибки, т.к. при таком подходе со стороны апача таковых никогда не будет.


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
ksnk
Дата 25.2.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 5
Всего: 386



Код

RewriteEngine On
RewriteBase /

RewriteRule ^statia_o_mirivom_ekonomicheskom_krizise\.html$ view_article.php?id=1


Содержимое .htaccess сочиняешь по аналогии с последней строкой из базы...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
zetxi815eb
Дата 25.2.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Цитата(rMaveric @ 25.2.2009,  16:34)
Один из самых простых способов следующий:

Код

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Это твой будущий .htaccess

Данный набор правил перенаправляет все запросы на файлик index.php, если они не ведут к реально существующей директории или файлу.\

А внутри этого самого index.php ты разбераешь какой запрос был сделан и в зависимости от него возвращаешь контент. Способов это сделать мильёон, и рассказывать о них не вижу смысла.

З.Ы.
Главное не забудь обработать 404 ошибки, т.к. при таком подходе со стороны апача таковых никогда не будет.

покажите на примере хоть один способ.

Какой код должен быть в самом скрипте, чтобы это работало?
PM MAIL   Вверх
rMaveric
Дата 25.2.2009, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 18.7.2003

Репутация: 2
Всего: 6



Код

<?php

$URI = explode( '/' , $_SERVER['REQUEST_URI'] );
print($URI[1]);
if (!$URI[1])
  {
  $id = 0;
  }
else
  {
  $id = getIdFromDB($URI[1]);
  }

showPage($id);

?>

Это в самом простом случае. Надеюсь функции getIdFromDB и showPage напишешь сам?


--------------------
Моя благодарность не будет иметь границ. в определенных рамках конечно ;)
---
Веду IT блог
PM MAIL WWW ICQ   Вверх
zetxi815eb
Дата 25.2.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



rMaveric, спасибо большое
PM MAIL   Вверх
bankir
Дата 3.6.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



rMaveric, 
спасибо тебе огромное, сам долго искал нечто подобное, вот только описывалось только как сделать это в htaccess
если не затруднит, то ответь пожалуйста:
1. надо ли на сайте переделать все внутренние ссылки под формат чпу (сейчас site.ru/catalog.php?id=1&brand=15 на site.ru/catalog/1/15) а то получается что sitemap генерируется старого формата, а поисковики будут заходить уже на новый с чпу.
2. если надо, то как бы переделать Ваш код чтобы он склеивал старые ссылки с новыми?
Код

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ catalog.php [L,QSA]

3. и последнее, 

Цитата(rMaveric @  25.2.2009,  16:34 Найти цитируемый пост)
Главное не забудь обработать 404 ошибки, т.к. при таком подходе со стороны апача таковых никогда не будет. 

не подскажете, а как можно переделать Ваш код если у меня такая структура?
russcom-shop.ru - сайтец на котором будет внедряться чпу
menu (catalog.php?id=) -> submenu (subcatalog.php?id=) -> item (item.php?id=)

Заранее благодарен
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.