Jump to content

Dynamic Google Site Map Generation (done), but Question Related to my Script


OldWest

Recommended Posts

I wrote this basic script yesterday to process and generate a Google Site Map. And it works! BUT I want to advance this script to accommodate for something else and I don't know the correct path to take from here, but I will tell you what I've found out so far..

 

Current Situation:

 

1 - Currently my below script generates urls in the site map like:

http://abcdefg.com/index.php?dispatch=products.view&product_id=29826

 

2 - I have .htaccess configured to rewrite the urls to the products name data like:

http://abcdefg.com/pennies/wheat-pennies/lincoln-wheat-penny-cent.html (just an example) and these urls are ONLY active if clicking on the site links themselves - meaning if I enter: http://abcdefg.com/index.php?dispatch=products.view&product_id=29826 directly into the url, the url does not resolve to this natural friendly url name.

 

What Id like to achieve (which I don't know what direction I should be looking!):

 

- I'd like my xml output urls (as current) to be written in the natural format (as in #2 above).

 

FYI here is a current example output item in my sitemap:

 

<url> 
  <loc>http://abcdefg.com/index.php?dispatch=products.view&product_id=29803</loc> 
  <changefreq>weekly</changefreq> 
  <lastmod>2010-09-24T08:00:00+04:00</lastmod> 
</url>

 

Can anyone give me some guidance on what method might work for this? Do you think it's more a mod_rewrite issue? Or can this be handled easier with straight up modifications to my below? I'm just a bit confused on what direction I should be looking.. Thanks for any input.

 

<?php
header("Content-Type: text/xml;charset=iso-8859-1");
  echo '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
//include('config.local.php');
  $cxn = mysqli_connect($config['db_host'], $config['db_user'], $config['db_password'], $config['db_name']);
  $query = "SELECT cscart_product_descriptions.product_id, cscart_products.product_id, cscart_products.timestamp
FROM cscart_product_descriptions JOIN cscart_products ON cscart_product_descriptions.product_id = cscart_products.product_id
WHERE cscart_products.status='A' LIMIT 10000";
  $result = mysqli_query($cxn, $query);
  $row = mysqli_fetch_array($result);
  while ($row = mysqli_fetch_array($result)) {
  $formatedTime = $row['timestamp'];
      echo '<url>
  <loc>http://abcdefg.com/index.php?dispatch=products.view&product_id=' . $row['product_id'] . '</loc>
  <changefreq>weekly</changefreq>
  <lastmod>'. date('c',$formatedTime) .'</lastmod>
  </url>';
  } //while ($row = mysqli_fetch_array($result))
  echo '</urlset>';
?>

 

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.