Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
43 / 43 / 25
Регистрация: 21.07.2013
Сообщений: 357
1

ЧПУ на сайте

08.10.2015, 16:35. Показов 1924. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Нужно реализовать ЧПУ ссылки на сайте. CMS самописная
есть ссылки вида:
http://skinberry.ru/index.php?... prod_id=16
http://skinberry.ru/index.php?... egory_id=9

хотелось бы сделать в виде:
http://skinberry.ru/название_к... нке_руками

ну или такого:
http://skinberry.ru/index.php/... нке_руками
http://skinberry.ru/index.php/... нке_руками

на сколько это возможно и как это реализовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2015, 16:35
Ответы с готовыми решениями:

Настроить чпу на сайте
url: http://192.168.3.11/?do=spisok в HTACCESS прописываю DirectoryIndex index.php...

ЧПУ на своем мини-сайте
Всем привет. Делаю что-то типа своей мини-цмс, или фреймворка... Вырастет-само решит. Из интереса....

Некорректная работа ЧПУ на сайте
Здравствуйте. Помогите, пожалуйста, решить следующую проблему: На сайте есть страницы типа...

Как сделать ЧПУ на чистом рнр сайте
Здравствуйте. Я создал сайт, а теперь задумался о том что надо сделать читабельные урлы....

10
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
08.10.2015, 16:39 2
С помощью .htaccess все запросы редиректите на index.php.

index.php становится роутером - в нём нет вывода данных, он только подключает контроллер конкретной страницы (например, страницы каталога новостей, страницы новости, страницы меню и т.п.) в зависимости от урл. А анализировать урл можно с помощью $_SERVER['REQUEST_URI'] и explode() по слешу.
0
43 / 43 / 25
Регистрация: 21.07.2013
Сообщений: 357
08.10.2015, 16:42  [ТС] 3
могли бы вы более подробно разъяснить как это сделать, лучше на примере

index.php у меня выглядит таким образом :
require_once 'config.php';

require_once CONTROLLER;
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.10.2015, 19:41 4
Цитата Сообщение от kvant355 Посмотреть сообщение
могли бы вы более подробно разъяснить
в общих чертах роутер
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//ссылка  site.ru/controller/action   и с параметрами site.ru/controller/action/param_1/1
 
$params = array();
if ($_SERVER['REQUEST_URI'] != '/') {
    $url_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
 
    // разбиваем url по  "/"
    $uri_parts = explode('/', trim($url_path, ' /'));
    $controller = array_shift($uri_parts); // получаем контроллер
    $action = array_shift($uri_parts); // получаем екшен
 
    // собираем в массив $params параметры запроса
    for ($i=0; $i < count($uri_parts); $i++) {
            $params[$uri_parts[$i]] = $uri_parts[++$i];
    }
}
 
echo  $controller.'<br>';//выведет controller
echo  $action.'<br>';//выведет action
var_dump($params);
// далее, вызываем контроллер и запускаем екшен(параметры передаем в екшен)
0
32 / 32 / 24
Регистрация: 16.04.2015
Сообщений: 219
08.10.2015, 20:06 5
Лучший ответ Сообщение было отмечено kvant355 как решение

Решение

Попробуй сделать следующим образом, покажу на примере твоей ссылки http://skinberry.ru/index.php?... prod_id=16 В общем пропиши в файле htaccess следующие команды:
RewriteEngine On
RewriteRule ^product/(\d+)/?$ index.php?view=product&prod_id=$1

А в файле исполнителе, поменяй адрес самой ссылки, если например сейчас она у тебя выглядит следующим образом ?view=product&prod_id=<?=$bd['prod_id']?>, то меняй на <?=PATH?>product/<?=$bd['prod_id']?>, где <?=PATH?> соответственно адрес твоего сайта.
1
43 / 43 / 25
Регистрация: 21.07.2013
Сообщений: 357
08.10.2015, 21:14  [ТС] 6
Kven-M, спасибо, это сработало, но появилась другая проблема, я хочу попасть на домашнюю страницу и получается адрес вида:
http://skinberry.ru/product/index.php

Добавлено через 18 минут
Kven-M, Спасибо, я во всем разобрался, все работает как надо))

Добавлено через 14 минут
Kven-M, А какое правило делать на страницы вида:
http://skinberry.ru/?view=register

Сделал так:
RewriteRule ^register/(\d+)/?$ index.php?view=$1

но это не помогло
0
32 / 32 / 24
Регистрация: 16.04.2015
Сообщений: 219
08.10.2015, 21:30 7
Лучший ответ Сообщение было отмечено kvant355 как решение

Решение

Для ссылок не получающих и не использующих какой-либо идентификатор используй следующее правило:
RewriteRule ^register/?$ index.php?view=register
1
43 / 43 / 25
Регистрация: 21.07.2013
Сообщений: 357
08.10.2015, 21:51  [ТС] 8
Kven-M, Спасибо, все получилось
0
43 / 43 / 25
Регистрация: 21.07.2013
Сообщений: 357
14.10.2015, 22:08  [ТС] 9
появился еще один вопрос
я заменил идентификатор id на текстовый и этот способ ЧПУ не срабатывает
то есть у меня сейчас
skinberry.ru/index.php?view=product&prod_title=product-name-product
skinberry.ru/index.php?view=prodcat&category_title=category-name-category


а хотелось бы так:
skinberry.ru/product/product-name-product
skinberry.ru/prodcat/category-name-category
0
39 / 39 / 17
Регистрация: 19.01.2013
Сообщений: 190
14.10.2015, 22:24 10
Лучший ответ Сообщение было отмечено kvant355 как решение

Решение

Цитата Сообщение от kvant355 Посмотреть сообщение
появился еще один вопрос
я заменил идентификатор id на текстовый и этот способ ЧПУ не срабатывает
то есть у меня сейчас
skinberry.ru/index.php?view=product&prod_title=product-name-product
skinberry.ru/index.php?view=prodcat&category_title=category-name-category


а хотелось бы так:
skinberry.ru/product/product-name-product
skinberry.ru/prodcat/category-name-category
Посмотрите нужное вам регулярное выражения и замените его. Исходное: (\d+) , поэтому строковый идентификатор не работает.
1
43 / 43 / 25
Регистрация: 21.07.2013
Сообщений: 357
14.10.2015, 22:40  [ТС] 11
LORDofLINEAGE, спасибо за наводку.
Если кому то пригодится то сделал так:
RewriteRule ^product/(.*)/?$ index.php?view=product&prod_title=$1
RewriteRule ^prodcatlist/(.*)/?$ index.php?view=prodcatlist&category_title=$1
0
14.10.2015, 22:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2015, 22:40
Помогаю со студенческими работами здесь

Подскажите парочку уроков по настройке ЧПУ на сайте.
Подскажите , пожалуйста, парочку уроков по настройке ЧПУ на сайте, а то я сам ничего дельного пока...

Принципы работы ЧПУ на сайте (mod_rewrite)
https://www.cyberforum.ru/php-beginners/thread1575728.html Как инклюдить такую html страницу? Не...

Неправильный путь при включенном ЧПУ на сайте
.htaccess меняет адрес вида ?page=par на /par/ Таблица стилей у меня выводится в виде: &lt;link...

ЧПУ на сайте opencart
Всем привет. Такая проблема: включил в админке чпу, seo url, прописал seo url для каталогов,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru