2015-04-10 4 views
0

Я хочу удалить id из URL-адреса. Ниже один изУдаление идентификатора с URL-адреса

http://example.com/post-1-postname.html 

правила перезаписи URL-адресов в файле .htaccess является

RewriteRule post-([0-9]+)-(.*)\.html$ post.php?id=$1&name=$2 [L] 

и этот скрипт использует $ _GET и использовать его для отображения на пост

$id = $mysqli->escape_string($_GET['id']); 

мой вопрос, как я могу удалить идентификатор из URL-адреса и все-таки заставить его работать с запросом $ _GET, чтобы отобразить сообщение. Любая помощь будет оценена.

+2

Нет, что не может быть сделано. Если 'id' ушел от запроса, тогда' GET' также не получит его. Посмотрите выше URL-адреса Stackoverlow, есть причина, по которой '/ 29556110 /' присутствует в URL-адресе. – anubhava

+0

Вы можете получить идентификатор из новых URL-адресов для SQL-запроса, например. используя regexp. Или используйте URL 'example.com/post/1/postname /'. – panther

+0

Может быть, хэширование base64 или какой-то custome home made fuction, если вы действительно не хотите, чтобы ваш DB id публично публиковал –

ответ

1

идентификация информации в URL-адресе, чтобы узнать, какой ресурс запрашивается. Вы не можете «скрыть» идентификатор, либо он есть, либо нет. Если вы не хотите указывать числовой код в URL-адресе, вам необходимо создать текстовые идентификаторы. I.e., если все ваши сообщения имеют заголовок, сделайте из него вырез («Hello World!» → «hello_world»), сохраните его в своей базе данных, убедитесь, что он уникален, а затем создайте URL-адрес: http://example.com/posts/hello_world. Ваш номер 1 был заменен идентификатором hello_world.

+0

. Я попробую, но я надеялся на большее или .htaccess решение. – maxlk

+0

Это не волшебство. URL - это идентификатор. Если информация, необходимая для идентификации сообщения, отсутствует в URL-адресе, то она не может быть нигде. – deceze

Смежные вопросы