Переписывание URL-адресов с использованием удобных URL-адресов

#mod-rewrite #url-rewriting

#переписывание мода #переписывание url

Вопрос:

В настоящее время URL-адреса выглядят следующим образом http://example.com/?p=2, поэтому, если я дам ссылку на другую страницу моего сайта, это будет <a href="http://example.com/?p=2"></a>

База данных содержит список страниц с 3 столбцами, идентификатором, заголовком и содержимым. Так, например, страница с идентификатором 2 имеет заголовок foo .

Я хочу, чтобы пользователь мог вводить URL:http://example.com/foo и пусть пользователь увидит, что находится на http://example.com/?p=2 . Таким образом, я смогу ссылаться на страницы типа: <a href="http://example.com/foo"></a> но URL в адресной строке останется в удобной ( foo ) версии.

Ответ №1:

Я не уверен, правильный ли это синтаксис, но по логике вещей у вас должно быть в вашем файле .htaccess что-то вроде этого:

 RewriteEngine on
RewriteRule ^(.*)$ index.php?title=$1
  

затем внутри index.php вы ПОЛУЧАЕТЕ заголовок и делаете с ним, что хотите.

Комментарии:

1. существует проблема, заключающаяся в том, что если у меня есть каталог (например, панель) и введите example.com/bar он добавляется /?titley=bar? к URL-адресу, что приводит к http://example.com/bar/?titley=bar?

2. @Jonathan, тебе нужен определенный RewriteRule для каждого каталога, который у тебя есть, который должен быть общедоступным. Это немного хлопотно, но это единственный известный мне метод (то, чего вы пытаетесь достичь, обычно выполняется как встроенная функция фреймворка).