Consider a url
www.example.com/paper-ads-details.php?req=43397&rnd=1308546000
I want to change this urls as:
www.example.com/jobs-in-chanai.php
where req=43397
is pointing to the post titled as jobs in chanai
How may i rewrite that? Please help me.
In your database you need a column for the 'clean url' or 'slug' as well as the .htaccess rules mentioned.
I use this function (not my code):
function makeSlug($string, $force_lowercase = true, $anal = false) {
$strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]",
"}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—",
"—", "–", ",", "<", ".", ">", "/", "?");
$clean = trim(str_replace($strip, "", strip_tags($string)));
$clean = preg_replace('/\s+/', "-", $clean);
$clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ;
return ($force_lowercase) ?
(function_exists('mb_strtolower')) ?
mb_strtolower($clean, 'UTF-8') :
strtolower($clean) :
$clean;
}
I save this in a column and do something like :
"SELECT * FROM `content` WHERE `clean_url` = '" . mysql_real_escape_string($cleanURL) . "'";
After hard time i got the way, and now sharing it for Other users...
Suppose the required Url is www.example.com/programmer-Jobs-in-luton
The Rule will be like...
RewriteRule ^([a-zA-Z0-9-]+)$ job-details.php?slug=$1 [L]