I've been looking into mod_rewrite for my simple PHP CMS for a couple of days now and I found a rule that was supposed to work for me:
RewriteRule ^(\w+)/?$ view_post.php?url=$1
This is supposed to take www.example.com/example-post
to the view_post.php
page and query the post from a DB. This doesn't work if there are -
(dashes) in the name. However, if I try www.example.com/examplepost
, it will work as I can see the view_posts.php
page loading and the SQL being constructed correctly, however no content loads because obviously, that won't match anything in the DB.
I could go a couple of ways around this, one would be to try to query the DB with both dashes and without, easily removed from the text with substr
, however I would like for that rewrite rule to work with dashes as well for now. This is probably something related to the regexp, however it is beyond my comprehension.
Any help will be much appreciated!