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

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

23.08.2018, 18:25. Показов 903. Ответов 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_ca t_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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2018, 18:25
Ответы с готовыми решениями:

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

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

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

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

11
502 bad gateway
Эксперт PHP
4605 / 3745 / 1565
Регистрация: 24.04.2014
Сообщений: 10,984
23.08.2018, 18:35 2
Собственно в последнем предложении ты сам ответил на вопрос почему иак сделать не получится.
0
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
23.08.2018, 18:46  [ТС] 3
Значит это 100% невозможно? Или может всё-таки есть какой-то способ?

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

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


otto-fukin,
Цитата Сообщение от otto-fukin Посмотреть сообщение
хотите блок от поисковика?
а почему он может дать блок, за ЧПУ? Или именно за то что я пытаюсь скрыть часть адреса?
0
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
23.08.2018, 20:28 11
Цитата Сообщение от TheArs Посмотреть сообщение
а почему он может дать блок, за ЧПУ?
один и тот же контентент по разным адресам
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2018, 20:44

Помощь в написании контрольных, курсовых и дипломных работ здесь.

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

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

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

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


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

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

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