- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Делаю сайт на php+mysql, самопис. Уперся в ЧПУ...
Либо я, уж сильно туп в программировании, либо программеры, пишущие мануалы и статьи на эту тему - напрочь не способны объяснять...
Хотелось бы получить от знающих людей - конкретные советы, алгоритмы, фрагменты кода, под мой случай... Спасибо!
Алиасы лежат в БД. Я их вытаскиваю и получаю в меню сайта ссылки/адреса типа:
/page/o_saite.html
/razd/razdel_takoi_to.html
/cat/categoria_takaia_to.html
Вместо них мне надо тащить из базы по таким параметрам:
index.php?tp=page&id=2
index.php?tp=razd&id=13
index.php?tp=cat&id=4
Соответственно, в таблице pages лежит строка с id=2, где url=o_saite. И мне, надо имея адрес "/page/o_saite.html" получить из таблицы pages строку с id=2.
Параметр tp определяет что за тип страницы, и из какой таблицы базы тащить строку по id (но как его увязать...??).
Вроде принцип работы понимаю, но реализовать не выходит. :madd:
Подскажите, что писать в .htaccess и как index.php заставить тащить строку из нужной таблицы базы, под нужным id
З.Ы. Прошу не посылать в гугл, не приводить абстрактные мануалы и примеры - так как уже обчитался... Также не советуйте, пожалуйста, забить и делать сайт на одной из стандартных CMS. Это уже дело принципа - ввязался, не отступлю. Помогите :)
Первое что бросилось в глаза
имея адрес "/page/o_saite.html" получить из таблицы pages строку с id=2.
т.е продолжив ряд
/razd/razdel_takoi_to.html - получить из таблицы razd
Фтопку такую систему.
Не.. зачем же. Только посмотрите как это организовано в популярных
Табл. категорий
Табл. постов
/category/page
Это самый простой вариант, когда страница привязана к одной категории
Есть более сложные случаи:
/category1/page
/category2/page
Это когда страница может принадлежать нескольким категориям.
Но в любом случае привязка идет по url (алиасу) поста
SELECT * FROM post wher alias='page'
Запрос, конечно будет посложнее, потому как нужно еще проверить его привязку к категории.
как index.php заставить тащить строку из нужной базы, под нужным id
В одну базу всё "не влазиит"?
как index.php заставить тащить строку из нужной базы, под нужным id
А зачем тащить "под нужным id" - тащите "под нужным url"
SELECT .. WHERE url = '{$url}'Url разбить можно, например, так (проверок добавить по своему усмотрению):
Это уже дело принципа - ввязался, не отступлю. Помогите
помогите "не отступить" 😂
И чем отличается
/category/page
от моего
/page/o_saite.html
/razd/razdel_takoi_to.html
page - это категория, говорящая, что это отдельная информационная страница сайта
razd - раздел каталога
есть еще
cat - категория каталога
pub - статья каталога...
В чем разница, кроме букв... ?
Но в любом случае привязка идет по url (алиасу) поста
SELECT * FROM post wher alias='page'
т.е. вы предлагаете тащить из базы не по id, а по алиасу?
/category/page
от моего
/page/o_saite.html
/razd/razdel_takoi_to.html
Я показал чем - структурой базы, описанной вами же
Откуда мне знать, что page != pages (на экстрасенса не учился)
Да. Но alias должен быть уникальным.
Откуда мне знать, что page != pages (на экстрасенса не учился)
Ну причем тут экстрасенсорика? Вот же написано: "Соответственно, в таблице pages лежит строка с id=2, где url=o_saite. И мне, надо имея адрес "/page/o_saite.html" получить из таблицы pages строку с id=2.
Параметр tp определяет что за тип страницы, и из какой таблицы базы тащить строку по id (но как его увязать...??)."
То что алиасы должны быть уникальны я догадался.
И все же, по сути, как подменять ЧПУ в .htaccess исходя из этой структуры?...
И все же, по сути, как подменять ЧПУ в .htaccess исходя из этой структуры?...
Либо вы там добавляете ид и тянете в скриптах по айдишнику, либо тянете сразу по алиасу (ну или на основе алиаса получаете ид) как показали выше. Вариантов здесь нет.
Я же остальное начинаю интерполировать
/razd/razdel_takoi_to.html - получить из таблицы razds
htaccess должен все запросы перенаправлять на индексный файл
htaccess должен все запросы перенаправлять на индексный файл
Допустим...
Я делаю так:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
В итоге, находясь на странице /page/page_takaia_to.html я жму на другой пункт меню и получаю дублирование вида - /page/page/page_takaia_to2.html
Как избавится от этих эффектов... И откуда они вообще берутся?
Как избавится от этих эффектов... И откуда они вообще берутся?
скорее всего из не правильно прописанных путей. Почитайте про относительные и абсолютные адреса.
скорее всего из не правильно прописанных путей. Почитайте про относительные и абсолютные адреса.
Вопрос про дублирование частей адреса снимается... Причину нашел. Спасибо!
Так теперь разбирать путь по принципу:
"Url разбить можно, например, так (проверок добавить по своему усмотрению):
Код:
$urls = explode ('.',$_SERVER['REQUEST_URI']);
$urls = explode ('/',$urls[0]);
print_r ($urls);"
???