Убрать GET из URL

123 4
barabash
На сайте с 30.04.2011
Offline
71
4180

Здравствуйте, Недавно начал изучать php, пишу простой сайт. Возник вопрос:

Как убрать параметры GET из ссылки?

Сейчас выглядит ссылка так: /blog/article.php?id=12&url=url-stati

Хочу что бы было так: /blog/url-stati.html

Знаю что это как то делается через .htaccess но совсем не разбираюсь в регулярных выражениях...

nezabor
На сайте с 19.07.2010
Offline
152
#1
barabash:
/blog/url-stati.html

ну во первых вы потеряли ID записи

если нучен ЧПУ, то в вашем варианте

/blog/12/url-stati.html

и в htaccess

RewriteRule ^services/(.*)/(.*)$ article.php?id=$1&url=$2 [L]

а если вам нужно чтобы ID вообще не было то надо обаспечить уникальность url-stati.html в базе

ваще вариантов масса - вопрос ваш не корректен

Чудес не бывает...
Kronbberg
На сайте с 14.03.2011
Offline
62
#2
barabash:
Хочу что бы было так: /blog/url-stati.html

Для этого надо исключить id=12 из строки с GET запросом. Если исключение не возможно, то переменная 12 должна быть и в ЧПУ.

::::::::::LinkBoss.net - Трастовые ссылки для увеличения трафика в 10 раз! (http://linkboss.net/)::::::::::
M
На сайте с 04.12.2013
Offline
223
#3
barabash:

Сейчас выглядит ссылка так: /blog/article.php?id=12&url=url-stati

Тут явно избыточная инфа, не? По слагу получайте id-шник, если он вообще нужен. Вот почитайте: Как сделать единую точку входа с ЧПУ?

---------- Добавлено 28.08.2016 в 19:06 ----------

nezabor:

и в htaccess
RewriteRule ^services/(.*)/(.*)$ article.php?id=$1&url=$2 [L]
Лучше не использовать трансляцию путей в параметры, а то закопаетесь в этих правилах плюс по каждому чиху придется лезть в .htaccess, что оч. криво.
Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
L
На сайте с 07.12.2007
Offline
351
#4
miketomlin:
Тут явно избыточная инфа, не?

Если url-stati уникальное поле в таблице базе данных - id не нужен. Но MySQL искать по текстовому полю будет чуть дольше(когда записей станет миллион). Можно создать индекс для этого поля.

А поле id автоинкремент можно оставить для внутренних нужд - администрировать таблицу удобнее с id.

Да, я тоже предпочитаю роутинг url делать через index.php, оно понятнее и гибче, чем mod_rewrite.

M
На сайте с 04.12.2013
Offline
223
#5

Я в курсе, зачем иногда добавляют числовой id к слагу в адресе. Однако уверен, что блогу ТС-а до масштабов уровня Авито и иже с ними еще оч. далеко.

---------- Добавлено 28.08.2016 в 22:20 ----------

Там, кстати, есть еще одна причина. Когда слаг меняется, а id-шник остается, можно по нему делать редирект всех старых адресов на новый.

---------- Добавлено 28.08.2016 в 22:22 ----------

ТС-у подсказка: естественно, поле слагов нужно делать как минимум юником.

---------- Добавлено 28.08.2016 в 22:34 ----------

На Авито, кстати, имена объявлений могут совпадать. Числовой id-шник помимо всего прочего обеспечивает уникальность адресов.

barabash
На сайте с 30.04.2011
Offline
71
#6

Спасибо всем, да много статей не будет, максимум 1000. Решил убрать id из url и добавить проверку url перед добавление в БД.

L
На сайте с 07.12.2007
Offline
351
#7
miketomlin:
Когда слаг меняется, а id-шник остается, можно по нему делать редирект всех старых адресов на новый.
...
Числовой id-шник помимо всего прочего обеспечивает уникальность адресов.

Что помогает тупо парсить сайт простым перебором номеров в url.

M
На сайте с 04.12.2013
Offline
223
#8
barabash:
Решил убрать id из url и добавить проверку url перед добавление в БД.

Если «url» будет добавлять админ, а не рядовой пользователь сайта, в этом нет особой необходимости. Вы лучше добавьте проверку на наличие исключительно допустимых символов в url'е/пути, перед тем как по нему (или по его отдельной части) делать запрос к БД.

barabash
На сайте с 30.04.2011
Offline
71
#9
miketomlin:
Если «url» будет добавлять админ, а не рядовой пользователь сайта, в этом нет особой необходимости. Вы лучше добавьте проверку на наличие исключительно допустимых символов в url'е/пути, перед тем как по нему (или по его отдельной части) делать запрос к БД.

Да, буду сам лично добавлять, символы не буду проверять, так как сам знаю что можно писать и каким должен быть url. Я добавлю только проверку, что бы не получилось 2 поста с одинаковыми ссылками.

M
На сайте с 04.12.2013
Offline
223
#10

Я вам выше писал про юники. Сервер БД не даст создать дублирующиеся значения. С первичным ключом то же самое.

---------- Добавлено 29.08.2016 в 17:02 ----------

В добавок, чтобы с этим было меньше проблем, разделите логику добавления поста на два этапа: собственно создание с указанием слага (или имени, по котором слаг будет формироваться автоматом) и редактирование, т.е. заполнение всех прочих полей.

---------- Добавлено 29.08.2016 в 17:03 ----------

Естественно, при успешном создании записи переход на форму редактирования должен происходить автоматически (редирект).

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий