2011-01-03 2 views
0

Мне просто интересно. На некоторых сайтах я вижу следующее: http://www.website.com/the-title-of-my-new-book-2011.htmlКак использовать mod rewrite с php?

Я знаю, как использовать mod rewrite, но мне интересно, как они получают заголовок, разделенный знаком «-». И я не вижу никакого идентификатора, то есть они используют заголовок книги, чтобы получить идентификатор и показать информацию из базы данных. Как они избавляются от знака «-»? И что еще более важно: как они ссылаются на каждую статью на своем веб-сайте? Какие функции используются для достижения всего этого?

Заранее спасибо.

+0

Большинство реализаций, с которыми я знаком, построены в шаблоне проектирования Front Controller и используют один скрипт для обработки этих видов конкретных запросов, так что URL-адреса, направленные в местоположения, у которых нет определенного контроллера, обрабатываются скриптом , Вы можете начать изучать шаблоны дизайна. – DeaconDesperado

ответ

2

Эти вещи называются slugs. При вводе нового продукта слизень, вероятно, создается полуавтоматически на основе имени продукта, например, удаляя все нелатинские символы, делая его нижним регистром и заменяя пробелы тире. Это сохраняется вместе с продуктом. При посещении вышеуказанного URL-адреса .html удаляется, а остальная часть берется как пуля и используется для поиска продукта в базе данных.

+0

Вот что я искал. Большое спасибо за ответ! – moonwalker

1

Они, вероятно, поймать полный путь (/the-title-of-my-new-book-2011.html) с помощью mod_rewrite, отрезанные .html и 2011, и сделать поиск остальной против столбца в их базе данных книг.

+0

Спасибо за быстрый ответ. Но я все еще смущен тем, как они получают название, разделенное знаком «-». Или mod_rewrite отвечает за это? – moonwalker

+1

@moonwalker Я не понимаю. Что такого особенного в '-'? Они не могут использовать пробелы, чтобы заполнить пробелы тире. В какой момент это происходит, не имеет большого значения, не так ли? –

+0

Что я знаю, но я думал, что mod_rewrite несет ответственность за то, что он делит черты. Ответ Deceze поставил меня на правильные пути, потому что я искал слово «слизняки» все время. Теперь я понимаю, как это делается. Спасибо за ваше время! – moonwalker