Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
1

Разобрать URL, полученный в результате преобразований ЧПУ

29.06.2015, 11:20. Показов 2586. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
У меня приходит ссылка такого вида.

http://some.ru/somepage/?cat=myCategory

После чего

PHP
1
$slug = $_GET['cat'];
происходит уже тонна страшного кода и работы. Но мой заказчик прибежал. И говорит. Мне не нравится что там символы ?cat=
Пусть будет мол просто отображаться http://some.ru/somepage/myCategory

Это нужно срочно сделать. А статьи как преобразовывать в .httpacces написаны слишком сложно. Там целые курсы можно по mod_rewrite вести.

Выручите пожалуйста. Напишите что куда добавлять.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2015, 11:20
Ответы с готовыми решениями:

Расшифровать ребус, полученный в результате замены одинаковых букв
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти...

Расшифровать ребус, полученный в результате замены одинаковых букв
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти...

Разобрать json-ответ, полученный от Synapse
Получаю данные через Synapse в кодировке UTF8. Затем его надо прогнать через функцию StripNonJson и...

Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти...

22
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
29.06.2015, 11:24 2
На сколько я знаю, это совсем разные вещи. В первом случае вы передаете параметр методом гет, а во втором вы заходите в папку myCategory и открываете там файл. Попробуйте передавать методом пост
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
29.06.2015, 11:34  [ТС] 3
Отсылается это методом ссылки. Человек кликнул и пошло дело.

PHP/HTML
1
<a href="<?= $item->url ?>?cat=<?= $tx->slug; ?>">
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
29.06.2015, 11:54 4
Тогда, наверное, преобразовать в данный вид никак не получится. Просто эти 2 строки в адресной строке означают совсем разное.
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
29.06.2015, 12:04  [ТС] 5
Да всё там правильно. Это просто Вордпресс вас путает немного. Объясню

http://some.ru/somepage/?cat=myCategory

Означает что открывается страница http://some.ru/somepage
В которой в коде идёт проверка $_GET['cat']; Эта проверка возвращает слово myCategory в нашем примере. И в зависимости от этого слова выводит нужную категорию.
Мой заказчик хочет чтобы слово ?cat= пряталось. И ссылка выглядела так
http://some.ru/somepage/myCategory

Вот и всё. Делается это в .httpacces но вот как ?
0
165 / 150 / 58
Регистрация: 15.06.2013
Сообщений: 1,107
29.06.2015, 12:09 6
Хм. Не знал что так можно. Интересная фишка. http://www.softtime.ru/forum/r... heme=21186 что-то тут про это написано. И внизу стриницы еще одна ссылочка есть
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.06.2015, 00:47 7
Код
RewriteEngine On
RewriteRule somepage/([a-zA-Z0-9]+) somepage/index.php?cat=$1
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
30.06.2015, 09:54  [ТС] 8
А если somepage может быть одним из многих вариантов. Нет такой возможности ?
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.06.2015, 14:00 9
WepstaR, Как-то не совсем вас понимаю,
так как у вас в примере введено somepage/?cat=category а вы хотите /somepage/category обьясните тогда понятнее.
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
30.06.2015, 14:06  [ТС] 10
http://some.ru/somepage/?cat=myCategory

somepage на сайте это 14 разных страниц. И у каждой точно такая же система ловли ?cat=myCategory. Как сделать для любых подобных страниц ?
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
30.06.2015, 14:24 11
Обычно это дело делается намного удобнее примеры можно посмотреть на dle,
а если уж на то пошло, тогда ручками прописать на каждую страницу, код выше.
Я не исключаю что есть вариант удобнее, но лично мне пока он не встречался.

Так просто для примера
Код
RewriteEngine On
RewriteRule news/([a-zA-Z0-9]+) news/index.php?cat=$1
RewriteRule files/([a-zA-Z0-9]+) files/index.php?cat=$1
RewriteRule forum/([a-zA-Z0-9]+) forum/index.php?cat=$1
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
02.07.2015, 09:55  [ТС] 12
Цитата Сообщение от JimUSA Посмотреть сообщение
RewriteRule forum/([a-zA-Z0-9]+) forum/index.php?cat=$1
Вопрос мне надо ссылку http://some.ru/somepage/?cat=myCategory спрятать и превратить в http://some.ru/somepage/myCategory
В вашем варианте случайно не на оборот превращает ?
0
Заблокирован
02.07.2015, 12:33 13
Представленные правила преобразуют внешние ссылки /somepage/myCategory во внутренний формат /somepage/?cat=myCategory (только я сомневаюсь, что эти правила будут работать без дополнительных условий).
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
02.07.2015, 15:16 14
Та всё пашет.
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
02.07.2015, 15:34  [ТС] 15
Вот весь мой код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule  somepage/([a-zA-Z0-9]+) somepage/index.php?cat=$1
</IfModule>
 
# END WordPress
somepage/([a-zA-Z0-9]+) somepage/index.php?cat=$1 вот ваш вариант который вы мне советовали.
Совершенно ничего не поменялось. Он продолжает показывать ссылку http://some.ru/somepage/?cat=myCategory
0
Эксперт по компьютерным сетямЭксперт NIX
13018 / 7409 / 801
Регистрация: 09.09.2009
Сообщений: 28,990
02.07.2015, 15:44 16
Цитата Сообщение от WepstaR Посмотреть сообщение
Он продолжает показывать ссылку
так саму ссылку формирует ваш php!!! тот, который
Цитата Сообщение от WepstaR Посмотреть сообщение
PHP
1
<a href="<?= $item->url ?>?cat=<?= $tx->slug; ?>">
по идее вам нужно заменить его на что-то такое:
PHP
1
<a href="<?= $item->url ?>/<?= $tx->slug; ?>/">
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
02.07.2015, 15:50  [ТС] 17
PHP
1
<a href="<?= $item->url ?>/<?= $tx->slug; ?>/">
PHP
1
RewriteRule  somepage/([a-zA-Z0-9]+) somepage/index.php?cat=$1
Так конечно он ссылку другую показывает но категорию теперь не ловит и не работает короче.Мне кажется дело в index.php как то не логично написано.
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
02.07.2015, 16:20 18
WepstaR, Я извиняюсь, но не логично держать страницы в таком виде,
ну а ссылка работает, просто нужно правильно вписать путь, всё проверено и работает, создавал папку и файл, всё пашет.
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
02.07.2015, 16:24  [ТС] 19
Почему не логично держать страницы в таком виде ? Это обычный метод гет который надо заныкать.
Что касается индекса
PHP
1
2
RewriteEngine On
RewriteRule somepage/([a-zA-Z0-9]+) somepage/index.php?cat=$1
вот объясните причём тут index.php ?
И что касается пути. Как определить его ?
0
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
02.07.2015, 23:58 20
WepstaR, Файл лежит в какой дериктории и под каким названием?

P.S. То что касается index.php, я тоже не провидец, что бы вгадывать гле у вас файл, как спросили так дал ответ, уж извените.
0
02.07.2015, 23:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2015, 23:58
Помогаю со студенческими работами здесь

Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами.
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти...

Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти также...

Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти...

Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами
Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти...


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

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