I have been, or can be if you click on a link and make a purchase, compensated via a cash payment, gift, or something else of value for writing this post. Regardless, I only recommend products or services I use personally and believe will be good for my readers.
I was listening to the “both sides of the tracks” podcast about Sports Marketing, Datafeeds and Traffic Geyser that Jason, Joe & I recorded earlier this week, and realized I forgot a point that I wanted to cover.
Joe was talking about a custom script he had written which generated tens of thousands of HTML pages on his server (one per product). We then jumped into PopShops and DataFeedr, completely skipping over how I handle datafeeds! So I’m writing this blog post to outline another solution.
By using .htaccess, PHP and a database, you can save the datafeed in your MySQL database and use a single PHP file with some .htaccess magic to make it appear as though you have thousands of pages on your site.
The basic concept is you’ll have a URL, such as mydomain.com/kabusecha-plum-123.html but that file does not exist on your server! Instead, .htaccess intercepts the request, and rewrites it to a dynamic PHP file (item.php). The .htaccess will look like:
RewriteEngine On RewriteRule (.*)\-([0-9]+).html$ item.php?nItemID=$2 [L]
What this does is finds any requests for a file that ends in -##.html (dash, any number, dot html) and tells the server what the user really meant was item.php?nItemID=## (whatever that number was). Now your item.php file connects to the database, pulls up record $_GET[‘nItemID’] and inserts that information in your template.
Now when you have to update your template, you update just the item.php file, and all of your “.html” files are automatically updated!
I’m in talks with Loxly on coming up with a full case study on how to effectively use datafeeds for an affiliate website.
Great tip Eric! I do it similarly, only I built a wordpress plugin that delivers the dynamic content via the wordpress permalink system. So, a request for:
is handled by index.php where the plugin analyzes the url and delivers the appropriate content.
Your way seems more portable, though.
Wow, I can’t believe I missed this post. Great start.