Как сделать ЧПУ?

12
PG
На сайте с 14.10.2007
Offline
28
1957

Час добрый, друзья.

Сделал простенькую CMSку, и хочется чтобы URL, которые формируются в адресной строке были удобочитаемые.

Задача стоит такого плана:

CMS выдает URL 2х видов:

1 - index.php?id=1

2 - index.php?id=1&artical=2

Хотелось бы видеть в браузере URL вида


index.php/1
index.php/1/2

или

index.php/1.html

index.php/1/2.html
может есть и другие варианты ...

Насколько это сложно сделать?

Поискал инфу в Гугле - честно сказать ничего не получается. Зеленый я пока в таких делах )))

Буду благодарен за помощь!

Angelo
На сайте с 01.01.2007
Offline
125
#1
PilotGarry:
2 - index.php?id=1&artical=2
index.php/1/2.html

В htaccess вставить

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /?id=$1&artical=$2 [L]

А вообще юзайте поиск по ключу mod rewrite

R.Major
На сайте с 23.03.2008
Offline
25
#2

Angelo, там вроде только цифры.

PilotGarry, правильно кстати article

Пишу на PHP (+JS) (/ru/forum/507055)
R2
На сайте с 01.02.2007
Offline
28
#3

Я м.б. не въехал :(

но если скрипт формирует адрес index.php?id=1&artical=2

то откуда в браузере возьмется index.php/1/2.html ?

(если только ручками)

B4
На сайте с 25.04.2007
Offline
34
#4
Raul21:
Я м.б. не въехал :(
но если скрипт формирует адрес index.php?id=1&artical=2
то откуда в браузере возьмется index.php/1/2.html ?
(если только ручками)

) ручками сделают site.ru/1/2.html в html файле (то что в браузере), а скрипт получит index.php?id=1&artical=2 из-за настроенного htaccess (mod rewrite) как писалось выше.

я бы сделал лучше что на подобии: site.ru/id_1/artical_2/ так как позволяет передать скока угодно параметров.

Собираю смешные фразы
R2
На сайте с 01.02.2007
Offline
28
#5
bobahbi4:
ручками сделают site.ru/1/2.html в html файле (то что в браузере), а скрипт получит index.php?id=1&artical=2 из-за настроенного htaccess (mod rewrite) как писалось выше.

п-переведи :)

Для того чтобы скрипт получил index.php?id=1&artical=2

надо чтобы скрипт (этот или другой - не важно) сначала сформировал УРЛ site.ru/1/2.html

...а потом уже по тесту выше - тут все понятно.

B4
На сайте с 25.04.2007
Offline
34
#6
Raul21:
п-переведи :)
Для того чтобы скрипт получил index.php?id=1&artical=2
надо чтобы скрипт (этот или другой - не важно) сначала сформировал УРЛ site.ru/1/2.html
...а потом уже по тесту выше - тут все понятно.

( стока писал и все стерлось случайно...

Пишите в htaccess файл (скрытый файл на ftp) строки, что писал Angelo и все.

Далее при обращении к сайту вида: site.ru/10/51.html файл index.php получит следующие GET параметры: ?id=10&artical=51

PS: Вы главное попробуйте и на деле все сами быстро поймете...

R2
На сайте с 01.02.2007
Offline
28
#7
bobahbi4:
Пишите в htaccess файл (скрытый файл на ftp) строки, что писал Angelo и все.
Далее при обращении к сайту вида: site.ru/10/51.html файл index.php получит следующие GET параметры: ?id=10&artical=51
PS: Вы главное попробуйте и на деле все сами быстро поймете...

Не вводите в заблуждение ТС...

То о чем Вы говорите и о чем писал Angelo

- это как преобразовать с помощью mod rewrite

строку site.ru/10/51.html в index?id=10&artical=51

НО! УРЛ site.ru/10/51.html то откуда возьмется?

если в первом посте ТС пишет что скрипт формирует урлы вида index?id=10&artical=51

Откуда берутся site.ru/10/51.html ?

Скрипт должен формировать ЧПУ - а дальше уже дело mod rewrite

Angelo
На сайте с 01.01.2007
Offline
125
#8
Raul21:
Скрипт должен формировать ЧПУ - а дальше уже дело mod rewrite

Ну так чуток подправить скрипт. Например:

$link = "http://site.ru/index.php?id=".$row['id']."&artical=".$row['artical']."";

Поменять на

$link = "http://site.ru/".$row['id']."/".$row['artical'].".html";

Как то так вообщем.

[Удален]
#9
Angelo:
$row['artical']."";

Вот это круто! :)

ЗЫ. Сорь за офтоп, тут по теме все что надо написано.

M
На сайте с 28.05.2008
Offline
4
#10

а как на эти изменения будут реагировать поисковики?

Видеосеминары: образовательный портал (http://www.videoseminar.com.ua/)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий