Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
TheArs
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
1

Как скрыть часть адреса из URI?

23.08.2018, 18:25. Просмотров 388. Ответов 11
Метки нет (Все метки)

Добрый вечер, назрел один вопрос, найти ответ на который мне не представляется возможным в виду неосведомлённости в теме.

Я настроил ЧПУ через .htaccess таким образом:

RewriteEngine on

DirectoryIndex /catalog/index.php

RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([A-Za-z-]+)/([0-9]+)$ /catalog/index.php?category=$1&id=$2 [L]
RewriteRule ^([A-Za-z-]+)/([0-9]+)/([A-Za-z-_]+)/([0-9]+)$ /catalog/index.php?category_name=$1&category_id=$2&sub_category=$3&id=$4 [L]
RewriteRule ^([A-Za-z-]+)/([0-9]+)/([A-Za-z-_]+)/([0-9]+)/([A-Za-z0-9-_&]+)/([0-9]+)$ /catalog/?category_name=$1&category_id=$2&sub_category_name=$3&sub_cat_id=$4&product=$5&id=$6 [L]
Теперь стоит задача скрыть id категории, подкатегории и товара из видимого URI. Т.е. к примеру:


1 случай. Зайдя по адресу 1, я должен увидеть адрес 2 -
1. site.ru/catalog/zvuk/1
2. site.ru/catalog/zvuk

2 случай. Зайдя по адресу 1, я должен увидеть адрес 2 -
1. site.ru/catalog/zvuk/1/stojki/6
2. site.ru/catalog/zvuk/stojki

3 случай. Зайдя по адресу 1, я должен увидеть адрес 2 -
1. site.ru/catalog/zvuk/1/stojki/6/k&m_21-07/628
2. site.ru/catalog/zvuk/stojki/k&m_21-07
Причём всё что идёт после site.ru/catalog/ - это переменные и они могут измениться как угодно.

Вот если в первом случае я ещё худо-бедно понимаю как сделать, так вот во 2 и 3 случае, я вообще не понимаю как быть.

И ещё такой вопрос возникает, а что если это получится всё-таки сделать и кто-нибудь скопирует ссылку из третьего случая (site.ru/catalog/zvuk/stojki/k&m_21-07) и отправит кому-нибудь, то перейдя по этому адресу он увидит то что нужно, или сервер будет считать что ему не все параметры отправили? Просто контент показывается в зависимости от того, какие id были отправлены, а если их скрыть то ничего не будет работать, или я всё не так понимаю?

Прошу, спасите!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2018, 18:25
Ответы с готовыми решениями:

Как скрыть часть url картинки
Ребят стоит такая задача ,есть страница php когда я нажимаю на миниатюру картинки выводится полный...

Скрыть пароль из строки адреса
Я совсем-совсем нуб, решил заняться сайтостроением. И когда я ввожу Пароль в форму, нажимаю submit,...

Как правильно создать файл из Uri или Uri.getPath() для отправки на сервер?
Есть Uri, полученный после выбора файлов в галерее. Uri вроде правильный:...

Как скрыть часть URL
у меня есть два урл test/ru/about test/en/about Как мне сделать так чтобы они оба были ...

Как скрыть часть текста на мобильных
Приветствую Вас знатоки. Уже несколько дней ломаю голову над тем, как мне крыть таблицу цен на...

11
Jewbacabra
Эксперт PHP
3864 / 3184 / 1388
Регистрация: 24.04.2014
Сообщений: 9,680
23.08.2018, 18:35 2
Собственно в последнем предложении ты сам ответил на вопрос почему иак сделать не получится.
0
TheArs
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
23.08.2018, 18:46  [ТС] 3
Значит это 100% невозможно? Или может всё-таки есть какой-то способ?

Может кто-нибудь ещё подтвердить, чтобы уж наверняка знал.
0
Jewbacabra
Эксперт PHP
3864 / 3184 / 1388
Регистрация: 24.04.2014
Сообщений: 9,680
23.08.2018, 19:43 4
TheArs, это не то что не возможно вообще, это не нужное лишнее действие, лишь добавляющее проблем. Это как ездить на велосипеде с квадратными колесами: теоретически возможно, но зачем?
0
23.08.2018, 19:43
TheArs
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
23.08.2018, 19:46  [ТС] 5
Чтобы не перегружать ссылку и пользователя лишней информацией, чтобы адрес выглядел адекватно и для SEO полезнее, чем явные GET запросы, ведь ЧПУ сделано для этих же целей
0
Jewbacabra
Эксперт PHP
3864 / 3184 / 1388
Регистрация: 24.04.2014
Сообщений: 9,680
23.08.2018, 19:50 6
TheArs, как раз для сео это вредно, когда по одному и тому же адресу будут постоянно разные данные. А дополнительный редирект только лишних байт по сети гонять будет
А ЧПУ поисковым роботам не нужно особо, что красивый url, что нет им без разницы.
0
TheArs
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
23.08.2018, 19:53  [ТС] 7
Ну хорошо, но всё равно для пользователя удобнее будет, так что если это всё-таки возможно, сможете подсказать как именно это реализовать?
0
otto-fukin
-53 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
23.08.2018, 20:09 8
Цитата Сообщение от TheArs Посмотреть сообщение
как именно это реализовать?
хотите блок от поисковика?

Добавлено через 47 секунд
пользователю плевать на вид ссылки
0
Jewbacabra
Эксперт PHP
3864 / 3184 / 1388
Регистрация: 24.04.2014
Сообщений: 9,680
23.08.2018, 20:12 9
TheArs, чем это будет удобнее для пользователя? Ему точно будет не удобнее из-за редиректа, который увеличит время загрузки страницы.
Реализовать это можно, например, помещая нормальный адрес в куки или сессию и делать редирект на обрезанный. И не забывать это обновлять. В общем лишняя точка отказа не приносящая пользы.
0
TheArs
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
23.08.2018, 20:16  [ТС] 10
Jewbacabra ,
Цитата Сообщение от Jewbacabra Посмотреть сообщение
В общем лишняя точка отказа не приносящая пользы
Ну ладно, наверное и вправду глупая затея... Спасибо, что переубедили


otto-fukin,
Цитата Сообщение от otto-fukin Посмотреть сообщение
хотите блок от поисковика?
а почему он может дать блок, за ЧПУ? Или именно за то что я пытаюсь скрыть часть адреса?
0
otto-fukin
-53 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
23.08.2018, 20:28 11
Цитата Сообщение от TheArs Посмотреть сообщение
а почему он может дать блок, за ЧПУ?
один и тот же контентент по разным адресам
0
TheArs
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
23.08.2018, 20:44  [ТС] 12
Цитата Сообщение от otto-fukin Посмотреть сообщение
один и тот же контентент по разным адресам
не, у меня наоборот: разный контент по одному и тому же реальному адресу (как и везде). Т.е в директории site.ru/catalog/, есть index.php и в этом индексе в зависимости от GET запроса разный контент.

А GET обрабатывается через htaccess и в итоге ссылки выглядят не так:

site.ru/catalog?category=zvuk&id=1
site.ru/catalog?category_name=zvuk&category_id=1&sub_category=stojki&id=6
А вот так:
site.ru/catalog/zvuk/1
site.ru/catalog/zvuk/1/stojki/6
Я что-то не так сделал? Просто насколько я знаю так почти все интернет-магазины реализованы
0
23.08.2018, 20:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2018, 20:44

Как скрыть\показать часть блока
Для новостного сайта, на шаблон просмотра кратких новостей в категориях и на главной вместо...

Как скрыть часть обьекта в html???
Есть swf-ка она идёт по всей ширине сайта, но на её верхней части сылка создателя, как скрыть...

TreeView: как скрыть не выбранную часть дерева
Что то туплю.. добавил в приложение дерево как скрыть ту часть дерева которая не содержит...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru