Помощь с mod_rewrite

#mod-rewrite

#переписать мод

Вопрос:

Я написал некоторый php-код, который генерирует URL-адреса таких страниц, как article.php?id=1 и т.д. Очевидно, что id — это идентификатор статьи, взятой из базы данных. В той же таблице базы данных у меня есть id , title и category столбцы. такие как:

 id      title                   category
1       hello world             general
  

Мой вопрос в том, как я могу переписать URL, используя заголовок и категорию статьи вместо идентификатора. Например, я хочу переписать URL

 example.com/article.php?id=1
  

Для:

 example.com/general/hello-world
  

Спасибо.

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

1. Вы имели в виду, что хотели переписать другим способом?

Ответ №1:

Самый простой способ сделать это — создать php-файл с именем general.php и используйте переменную $_SERVER[‘PATH_INFO’].

Ответ №2:

Я полагаю, вы собираетесь использовать входящее правило перезаписи.

Одним из способов было бы извлечь категорию и заголовок из URL и использовать другой PHP-файл для поиска статьи

 RewriteRule .*?.php - [PT]
RewriteRule  (.*?)/(.*)  articleByCategoryAndTitle.php?category=$1amp;title=$2
  

Второй подход мог бы заключаться в использовании всех трех частей, как в

 example.com/category/title-42
  

а затем используйте RewriteRule, чтобы открыть страницу статьи по идентификатору

 RewriteRule (?:.*)-(d )$ article.php?id=$1