Это должно помочь вам.Похоже, вы сделали большую часть этого, так что нет ничего, чтобы сделать.
RewriteEngine On
RewriteBase /
# you do not need a rewrite for the root as you should have index.php
# as your default document and page 1 as your default page
RewriteRule ^page/1/?$ / [NC,L,R=301]
RewriteRule ^page/(\d+)/?$ index.php?page=$1 [NC,L]
# you do not need a rewrite for blog as you should have index.php as your
# default document and page 1 as your default page
# you do not need a rewrite for news as you should have index.php as your
# default document and page 1 as your default page
RewriteRule ^(blog|news)/page/1/?$ $1 [NC,L,R=301]
RewriteRule ^(blog|news)/page/(\d+)/?$ $1/index.php?page=$2 [NC,L]
######################################################################
################## ADD YOUR PERMALINK.PHP CODE HERE ##################
######################################################################
ОБНОВЛЕНИЕ Чтобы эффективно превратить / 2012/03 / post-title в postID, вы должны иметь возможность попросить вашу базу данных сделать это для вас, так как этоЕдинственное, что знает ответ.Так что вы можете использовать RewriteMap
http://httpd.apache.org/docs/2.3/rewrite/rewritemap.html#dbd. Я никогда не делал этого сам, и я бы советовал против этого.Не потому, что я знаю, что с этим есть проблема, у меня просто плохое чувство по этому поводу.
Альтернатива, которую я бы отстаивал, - это просто сделать что-то вроде этого:
RewriteRule ^(\d{4})/(\d{2})/([^/]+))/?$ article.php?postIdentifier=$1/$2/$3 [L]
Затем в article.php перейдите в базу данных и используйте информацию в postIdentifier, чтобы получить правильную статью.
Имеет смысл?