Если вы не хотите включать идентификатор в URL, я бы предложил следующий подход.
В вашей таблице "posts" включите поле "url" (или "friendly" или что-то еще), которое содержит URL, по которому вы хотите, чтобы ваш пост был доступен. Вставляя сообщение, просто удалите все несловарные символы и замените их на '-'.
Затем, когда URL-адрес попадет в вашу систему, вы можете просто сопоставить этот URL-адрес непосредственно с полем "url".
Итак, используя ваш пример, ваш URL будет http://mysite.com/2011/03/27/my-title-like-so/
Поле «url» будет содержать «my-title-like-so».
Вы можете использовать простое правило перезаписи, например, следующее:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f # if requesting file that doesn't exist, use the rule below
RewriteCond %{REQUEST_FILENAME} !-d # if requesting a directory that doesn't exist, use the rule below
RewriteRule ^(.*)$ index.php?myvar=$1 [L,QSA]
Это поместит содержимое URL после домена:
http://mysite.com/[catches everything here]
И будет хранить его в глобальном $ _GET как 'myvar'
Затем вы можете выполнить любую обработку этого URL в php:
$url_string = my_sanitising_code($_GET['myvar']);
$url_array = explode('/', $url_string);
Теперь у вас есть массив всех частей URL, и вы можете делать с ними все, что пожелаете.