http://yoursite.com/review.php?id=45
Do you see a problem with this? No? Are you sure? Ok, then I’ll have to explain it. With that type of URL, you are not able to know anything about the review. It could be a review for “Casablanca” just as easily as it could a review for “Ace Ventura: Pet Detective”. And that’s not the biggest problem; it is also a bad SEO URL!
How can you fix this? Use SEO Friendly URLs.
Requirements: Apache (with mod_rewrite module) installed on your server (most hosting services already have this).
Step 1: Insert the following code on you PHP script
Step 2: Apply the above function to your regular URLs to make them SEO Friendy.
function StrToSearchFriendlyURL($s) {
if(!$s) return 'page';
$s = strtolower(htmlentities($s, ENT_QUOTES, $GLOBALS['CHARSET']));
$s = preg_replace('/&(.)(?:acute|cedil|circ|ring|tilde|uml|grave|elig|slash);/', '\\1', $s);
$s = preg_replace('/\W+/', '_', html_entity_decode($s));
$s = preg_replace('/_{2,}/','_',$s);
$s = trim($s,'_');
if(!$s) $s = 'page';
return $s;
}
Step 3: When inserting the new URLs on your page, add a dash (-), the review id and html extension at the end.
Example:
<a href="{SEO_friendly_URL}-{id}.html">{$review_title}</a>
Step 4: Create a .htaccess file with the following content.
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^[^-]+-([0-9]+)\.html$ review.php?id=$1 [L]
Step 5: Place the .htaccess file on your site’s document root.
That’s it! The URLs on your site will now look something like this: http://yoursite.com/casablanca-45.html which will be interpreted by Apache like http://yoursite.com/review.php?id=45
More about mod_rewrite: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
More about .htaccess files: http://httpd.apache.org/docs/1.3/howto/htaccess.html