Make Dynamic URLs Search Engine Friendly - Modifying Your Code
(Page 6 of 7 )
Now that you’ve tested your URL and it works, modifying your code is all that remains to be done. Every instance of a dynamically-created URL must be revised. Just to clarify, in our example that would be all URLs that invoke the page
main.php using a query string with two parameters, the first named
category and the second named
subject. Any other dynamic URLs that do not match this pattern will have to have their own separate rewrite rule. But let’s keep it simple and look at a code example, again referring to our sample URL.
Original Code
Assume that our database has been opened and the result set of a query has been returned into the variable $rs. Iterating through this result set using a while loop creates the dynamic URLs. This is done with the following code:
<?php
while($row = @ mysql_fetch_array($rs)){
$category = $row["category"];
$category = URLencode(htmlentities($category,ENT_QUOTES));
$subject= $row["subject"];
$subject = URLencode(htmlentities($subject,ENT_QUOTES));
/*format for following HTML result
http://www.mysite.com/main.php?category=books&subject=biography
*/
echo "<a href=\"http://www.mysite.com/main.php?
category=$category&subject=$subject\">";
echo "$row[description]</a><br>\n";
}
?>
The fields category and subject are self-explanatory. description is simply the text that will appear as the clickable hyperlink. You can see in this example how a query string with two parameters has been created. The first parameter is separated from the page itself by a “?” and the second by an “&”. This is the line of code that will need modification.
Revised Code
<?php
while($row = @ mysql_fetch_array($rs){
$category = $row["category"];
$category = URLencode(htmlentities($category,ENT_QUOTES));
$subject= $row["subject"];
$subject = URLencode(htmlentities($subject,ENT_QUOTES));
/*format for the URL rewrite is as follows
http://www.mysite.com/type$category-$subject.htm
*/
echo "<a href=\"http://www.mysite.com/type$
category-$subject.htm\">";
echo "$row[description]</a><br>\n";
}
?>
Notice that a comment showing the format we are aiming for has been inserted into the code. This is the text that was saved in the file format.txt. It will serve as a handy reference so that mistakes are avoided. You can see that all that has been changed is the one line that actually creates the query string.
Next: Conclusion >>
More Web Services Articles
More By Peter Lavin