Проблема с перезаписыванием URL-адреса
-
03-07-2019 - |
Вопрос
я создал веб-сайт на php.
В базе данных хранится список названий историй, и когда пользователь нажимает на любой заголовок среди них, пользователь перенаправляется на страницу со строкой запроса на ней.нравится story.php?id=25
Это означает, что теперь будет отображаться история с идентификатором 25.Теперь я хочу переписать URL, но когда я его переписываю, возникает проблема.
На странице story.php я читаю строку запроса типа $_GET['id']..но после переписывания URL-адреса я не могу прочитать его таким образом.Может ли какой-нибудь орган подсказать, что делать
Решение
Если бы вы внесли некоторые коррективы в свою строку URL, вы могли бы сделать это.
http://www.domain.com/story.php?story=25&title=some_name
Который после перезаписи может быть таким.
http://www.domain.com/25/some_name.html
Код:
RewriteEngine On
RewriteRule ^story/([^/]*)/([^/]*)\.html$ /story.php?story=$1&title=$2 [L]
Другие советы
Вы можете использовать .htaccess для перезаписи длинных URL-адресов на стороне сервера, но не перенаправлять браузер (поэтому он все еще показывает длинный URL-адрес в адресной строке), что-то вроде:
RewriteEngine on
RewriteRule story\/(\d+)\/(.+) story.php?id=$1
Просто сделайте так, чтобы длинные ссылки выглядели как www.site.com/story/25/This_is_the_title