- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте форумчане. Делаю сайт php с базой mysql. Интересует: возможно ли сделать ЧПУ, так чтобы они вытягивались из таблицы в базе. То есть чтобы вместо "http://localhost/phpsite/view_stars.php?link=kratkoe nazvanie statjy", подставлялась ссылка "http://localhost/phpsite/kratkoe nazvanie statjy" - это мне нужно чтобы ссылки были СЕО оптимизированы!
Вот какой у меня код:
Затем :
У меня получается такая ссылка: "http://localhost/phpsite/view_stars.php?link=kratkoe nazvanie statjy", а надо:"http://localhost/phpsite/kratkoe nazvanie statjy"
Если вопрос непонятен, сделать так как на этом сайте:http://cherrylady.ua/zvezdmiye-novosti/beyonse_provela_svoy_den_rojdeniya_na_yahte/
Для меня новичка формирование ЧПУ ссылок из базы было бы лучшим вариантом, вставил в таблицу ссылку и готово! Возможно реализовать как-то таким образом?
Общий принцип
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+) view_stars.php?link=$1 [L]
Паттерны для RewriteRule можно написать более конкретные, чтобы преобразовать нужные ссылки и не захватить лишние.
Ликбез
http://www.google.ru/search?client=opera&rls=ru&q=mod_rewrite&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest
Ну так это надо задействовать .htaccess? Без него никак? Я хочу сделать один шаблон article.php и из него вытаскивать нужную статью, тогда мне нужно будет прописать правило выше изложено вами? Будет ли работать это правило для всего сайта или только к конкретному примеру?
---------- Добавлено 05.09.2012 в 17:16 ----------
А если у меня будет много страниц, так что мне надо будет прописывать это правило для каждой страницы?? Нету единого правила для всего сайта... или может есть какое-то поумнее решение, что я привел, как лучше сделать?
Ну так это надо задействовать .htaccess? Без него никак?
Никак. Сами то вы себе это как представляете? Сервер каким образом будет определять ЧПУ? Либо htaccess, либо чрез имя исполняющего файла - view_stars.php/kratkoe-nazvanie-statjy/
Я хочу сделать один шаблон article.php и из него вытаскивать нужную статью, тогда мне нужно будет прописать правило выше изложено вами? Будет ли работать это правило для всего сайта или только к конкретному примеру?
Будет работать для всех несуществующих файлов и директорий (короче ссылок).
А если у меня будет много страниц, так что мне надо будет прописывать это правило для каждой страницы?? Нету единого правила для всего сайта...
Это правило для "всего сайта". Настоятельно рекомендую почитать сабж и ФАК по нему, эти вопросы освещены в документации и тысячи примеров по сети. Иначе лучше просто забить и использовать простые ссылки.
Спасибо за ответы! Буду использовать .htaccess!
.htaccess
---------------------------
RewriteRule ^([^./]+).html$ article.php?alias=$1 [L]
article.php
---------------------------
if (isset($_GET['alias']))
{
$sql = "SELECT * FROM content WHERE alias = '".$alias."' LIMIT 0,1";
$result=mysql_query($sql);
if (mysql_num_rows($result)==0)
{
$str = $alias.'.html';//для статических страниц
if (file_exists($str))
include($str);
else
{
header('HTTP/1.1 404 Not Found');
include($_SERVER['DOCUMENT_ROOT'].'/404.php');
}
exit();
}
......
При добавлении статей надо следить, чтобы не было совпадений названий статических страниц и поля "alias". Например, есть у вас страница 404.html, чтобы не было в базе статьи с alias = 404. И не забудьте, про обработку значений полученных из GET массива, этот код лишь показывает принцип работы.