[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Стандартный сайт
Stasonix
Как сделать стандартный сайт с инфой из БД, напр. есть в БД категории и статьи, напр. допустим сайт о спорте, есть категории футбол, хоккей, баскетбол, в каждой категории есть свои статьи:

Футбол
-вратарь
-гол
-оффсайд
Бокс
-Тайсон
...
и т.д. и т.п.

Так вот, естественно названия категорий и сами статьи содержаться в БД, вопрос, как к этому всему приделать скелет? Т.е. чтобы ссылки нормально выглядели напр. mysite.loc/football/goalkeeper.html или mysite.loc/box/tayson.html, а если зайти просто на mysite.loc/football то все статьи будут отображться, надеюсь меня поймут, ясное дело что это регулярками в mod_rewrite делается, но хочется явный пример увидеть, может есть какая-нть статья, котороая мне поможет в этом разобраться, или живой пример?

Массивы тоже подойдут вместо БД.



Спустя 10 минут, 26 секунд (22.07.2012 - 11:05) pak написал(а):
вот несколько статей:
http://habik.net/kak-sdelat-chpu-dlya-sajta-na-php/
http://js-php.ru/web-development/apache-mo...rite-php-mysql/
http://phpmetki.blogspot.com/2011/02/htaccess.html

А вот Mod Rewrite Generator, с помощью него легко сделаете ссылки как вам надоооо))

Спустя 4 минуты, 49 секунд (22.07.2012 - 11:09) Stasonix написал(а):
Это все только ЧПУ, я хотел бы на сам скелет посмотреть, поэтому и спрашиваю. Лучше даже архив с примером или код такого сайта в очень очень урезанном виде сюда можно? А потом подискутируем, если будет о чем. Я как-то пытался сделать через ЧПУ, но сайт стал так долго загружаться что я выкинул эту идею.

Начало начал, каким-то образом (не важно как) вывел названия категорий на главной:


<?php

$cats = array("Football","Box","Hockey");
foreach ($cats as $title) {

echo "<li><a href='http://mysite.loc/".$title."'>".$title."</a></li>";

}
?>


Дальше-то так?

Спустя 20 минут, 55 секунд (22.07.2012 - 11:30) pak написал(а):
дальше в файл htaccess пишем что типо этого

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]*)$ /?cat=$1 [L]

и принимаем данные:

echo $_GET['cat'].'<br />';
print_r($_GET);
// и не забывает проверять гет

Спустя 16 минут, 27 секунд (22.07.2012 - 11:47) Stasonix написал(а):
итого у меня вышло два файла пока: вот их исходники как есть:

index.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta
content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>
mysite.loc</title>
</head>
<body>
<p>
Список категорий</p>
<ul>

<?php


$cats = array("Football","Box","Hockey");
foreach ($cats as $title) {

echo "<li><a href='http://mysite.loc/".$title."'>".$title."</a></li>";

}
?>

</ul>


<?php



if (isset($_GET['cat']))
{
echo "<p>Список статьей</p>";
echo " [ ". $_GET['cat']. " ] -> <a href='http://mysite.loc/".$_GET['cat']."/goal.html'>goal</a>";

}

?>


</body>
</html>


и .htaccess:


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]*)$ /?cat=$1 [L]


У вас это срабатывает?

Спустя 5 минут, 9 секунд (22.07.2012 - 11:52) pak написал(а):
да.

Спустя 7 минут, 53 секунды (22.07.2012 - 12:00) Guest написал(а):
О класс! А дальше как? Если я goal нажму, хочу статью полностью про гол увидеть?

Спустя 1 минута, 3 секунды (22.07.2012 - 12:01) Stasonix написал(а):
Не заметил что под гостем был. sorry

Спустя 53 минуты, 29 секунд (22.07.2012 - 12:54) Stasonix написал(а):
я так понял тупик?

Спустя 6 минут, 48 секунд (22.07.2012 - 13:01) pak написал(а):

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]*)/([a-zA-Z]*)\.html$ /?cat=$1&page=$2 [QSA,L]

Спустя 2 минуты, 54 секунды (22.07.2012 - 13:04) Stasonix написал(а):
это в дополнение к тому что есть уже или вместо того что есть?

Спустя 16 минут, 2 секунды (22.07.2012 - 13:20) Stasonix написал(а):
Глупый вопрос наверно был. В итоге у меня получилось:

index.php


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<
html>
<
head>
<
meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<
title>mysite.loc</title>
</
head>
<
body>
<
p>Список категорий</p>
<
ul>

<?php

$cats = array("Football","Box","Hockey");
foreach ($cats as $title) {

echo "<li><a href='http://mysite.loc/".$title."'>".$title."</a></li>";

}
?>

</ul>

<?php

if (isset($_GET['cat']))
{
echo "<p>Список статьей</p>";
echo " [ ". $_GET['cat']. " ] -> <a href='http://mysite.loc/football/goal.html'>goal</a>";

}

?>

<?php


if (isset($_GET['page']))
{

echo "<p>Содержание статьи <b>".$_GET['cat']."</b> -> ".$_GET['page']."</p>";

}

?>

</body>
</
html>


.htaccess


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]*)$ /?cat=$1 [L]
RewriteRule ^([a-zA-Z]*)/([a-zA-Z]*)\.html$ /?cat=$1&page=$2 [QSA,L]


В принципе все так и задумывалось, спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.