#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 для каждого каталога, который у тебя есть, который должен быть общедоступным. Это немного хлопотно, но это единственный известный мне метод (то, чего вы пытаетесь достичь, обычно выполняется как встроенная функция фреймворка).