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

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

23.08.2018, 18:25. Показов 1921. Ответов 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_cat egory_name=$3&sub_cat_id=$4&product=$5&i d=$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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.08.2018, 18:25
Ответы с готовыми решениями:

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

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

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

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

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

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


otto-fukin,
Цитата Сообщение от otto-fukin Посмотреть сообщение
хотите блок от поисковика?
а почему он может дать блок, за ЧПУ? Или именно за то что я пытаюсь скрыть часть адреса?
0
 Аватар для otto-fukin
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
23.08.2018, 20:28
Цитата Сообщение от TheArs Посмотреть сообщение
а почему он может дать блок, за ЧПУ?
один и тот же контентент по разным адресам
0
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
23.08.2018, 20:44  [ТС]
Цитата Сообщение от 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.08.2018, 20:44
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru