Well, I just have done optimize SEO for one of my website using 4images gallery system it’s on http://www.innovativedesktop.com basically I play with meta title, keywords, and description. And now I’m using URL rewrite. URL look cool and more search engine friendly I believe after a week or month it will indexed in lot of search engine
Here is the way for you’re to using URL rewrite on 4images to make it more search engine friendly REMEMBER this will eat CPU resources. (before you doing this I recommended to backup your files first). Any alternative you can learn about URL rewrite yourself to make it works as you want (google is the best teacher).
1. You need to make .htaccess file and put this code on it
RewriteEngine On
RewriteRule ^lightbox\.html$ lightbox.php?%{QUERY_STRING}
RewriteRule ^lightbox\.([0-9]+)\.html$ lightbox.php?page=$1&%{QUERY_STRING}
RewriteRule ^search\.html$ search.php?%{QUERY_STRING}
RewriteRule ^search\.([0-9]+)\.html$ search.php?page=$1&%{QUERY_STRING}
RewriteRule ^postcard([a-zA-Z0-9]+)\.html$ postcards.php?postcard_id=$1&%{QUERY_STRING}
RewriteRule ^postcard\.img([0-9]+)\.html$ postcards.php?image_id=$1&%{QUERY_STRING}
RewriteRule ^k_(.*)_([0-9]+).html categories.php?cat_id=$2&%{QUERY_STRING}
RewriteRule ^r_(.*)_([0-9]+).html details.php?image_id=$2&%{QUERY_STRING}
RewriteRule ^r([0-9]+).search.html details.php?image_id=$1&%{QUERY_STRING}
2. Open /include/sessions.php before the last line add this code
//Mod_bmollet
/**
* Get the category url
* @param int $cat_id The id of the category
* @param string $cat_url The current status of the URL
*/
function get_category_url($cat_id,$cat_url = ”)
{
global $site_db;
$sql = “SELECT cat_name,cat_parent_id FROM “.CATEGORIES_TABLE.” WHERE cat_id = ‘”.$cat_id.”‘”;
$result = $site_db->query($sql);
$row = $site_db->fetch_array($result);
$row[’cat_name’] = strtr($row[’cat_name’], “éèêàëâúóíáABCDEFGHIJKLMNOPQRSTUVWXYZ”,”eeeaeauoiaabcdefghijklmnopqrstuvwxyz”);
$cat_url = ‘_’.str_replace(’+',’_',urlencode($row[’cat_name’])).’_’.$cat_id.$cat_url;
// if you want full path of category in url, put next line in comment
return $cat_url;
if( $row[’cat_parent_id’] != 0)
{
return get_category_url($row[’cat_parent_id’],$cat_url);
}
else
{
return $cat_url;
}
}
//Mod_bmollet
/**
* Get the image url
* @param int $image_id The id of the image
*/
function get_image_url($image_id)
{
global $site_db;
$sql = “SELECT cat_id,image_name FROM “.IMAGES_TABLE.” WHERE image_id = ‘”.$image_id.”‘”;
$result = $site_db->query($sql);
$row = $site_db->fetch_array($result);
$row[’image_name’] = strtr($row[’image_name’], “éèêàëâúóíáABCDEFGHIJKLMNOPQRSTUVWXYZ”,”eeeaeauoiaabcdefghijklmnopqrstuvwxyz”);
// if you want comlpete path to image in url, remove comment from following line
//return get_category_url($row[’cat_id’]).’-’.str_replace(’+',’-',urlencode($row[’image_name’])).’-’.$image_id;
return ‘_’.str_replace(’+',’_',urlencode($row[’image_name’])).’_’.$image_id;
}
3. Find this code on /include/sessions.php
function url($url, $amp = “&”) {
global $l;
$dummy_array = explode(”#”, $url);
$url = $dummy_array[0];
if ($this->mode == “get” && !preg_match(”/”.SESSION_NAME.”=/i”, $url)) {
$url .= preg_match(”/\?/”, $url) ? “$amp” : “?”;
$url .= SESSION_NAME.”=”.$this->session_id;
}
if (!empty($l)) {
$url .= preg_match(”/\?/”, $url) ? “$amp” : “?”;
$url .= “l=”.$l;
}
$url .= (isset($dummy_array[1])) ? “#”.$dummy_array[1] : “”;
return $url;
}
Replace it with this code
/* ORIGINAL CODE
function url($url, $amp = “&”) {
global $l;
$dummy_array = explode(”#”, $url);
$url = $dummy_array[0];
if ($this->mode == “get” && !preg_match(”/”.SESSION_NAME.”=/i”, $url)) {
$url .= preg_match(”/\?/”, $url) ? “$amp” : “?”;
$url .= SESSION_NAME.”=”.$this->session_id;
}
if (!empty($l)) {
$url .= preg_match(”/\?/”, $url) ? “$amp” : “?”;
$url .= “l=”.$l;
}
$url .= (isset($dummy_array[1])) ? “#”.$dummy_array[1] : “”;
return $url;
}
*/
function url($url, $amp = “&”) {
global $l, $user_info;
$dummy_array = explode(”#”, $url);
$url = $dummy_array[0];
$url = str_replace(’&’, ‘&’, $url);
if (!defined(’IN_CP’)) {
if (strstr($url, ‘index.php’)) {
$url = str_replace(’index.php’, ”, $url);
}
elseif (strstr($url, ’search.php’)) {
if (strstr($url, ‘page=’)) {
preg_match(’#page=([0-9]+)&?#’, $url, $matches);
if (isset($matches[1])) {
$split = explode(’?', $url);
$url = $split[0];
$query = @$split[1];
$url = str_replace(’search.php’, ’search.’.$matches[1].’.html’, $url);
$query = str_replace(’page=’.$matches[1].’&’, ”, $query);
$query = str_replace(’&page=’.$matches[1], ”, $query);
$query = str_replace(’page=’.$matches[1], ”, $query);
if (!empty($query)) {
$url .= ‘?’ . $query;
}
}
}
else {
$url = str_replace(’search.php’, ’search.html’, $url);
}
}
elseif (strstr($url, ‘lightbox.php’)) {
if (strstr($url, ‘page=’)) {
preg_match(’#page=([0-9]+)&?#’, $url, $matches);
if (isset($matches[1])) {
$split = explode(’?', $url);
$url = $split[0];
$query = @$split[1];
$url = str_replace(’lightbox.php’, ‘lightbox.’.$matches[1].’.html’, $url);
$query = str_replace(’page=’.$matches[1].’&’, ”, $query);
$query = str_replace(’&page=’.$matches[1], ”, $query);
$query = str_replace(’page=’.$matches[1], ”, $query);
if (!empty($query)) {
$url .= ‘?’ . $query;
}
}
}
else {
$url = str_replace(’lightbox.php’, ‘lightbox.html’, $url);
}
}
elseif (strstr($url, ‘categories.php’)) {
if (strstr($url, ‘cat_id=’) && strstr($url, ‘page=’)) {
preg_match(’#cat_id=([0-9]+)&?#’, $url, $matches1);
preg_match(’#page=([0-9]+)&?#’, $url, $matches2);
if (isset($matches1[1]) && isset($matches2[1])) {
$split = explode(’?', $url);
$url = $split[0];
$query = @$split[1];
$url = str_replace(’categories.php’, ‘cat’.$matches1[1].’.’.$matches2[1].’.html’, $url);
$query = str_replace(’cat_id=’.$matches1[1].’&’, ”, $query);
$query = str_replace(’&cat_id=’.$matches1[1], ”, $query);
$query = str_replace(’cat_id=’.$matches1[1], ”, $query);
$query = str_replace(’page=’.$matches2[1].’&’, ”, $query);
$query = str_replace(’&page=’.$matches2[1], ”, $query);
$query = str_replace(’page=’.$matches2[1], ”, $query);
if (!empty($query)) {
$url .= ‘?’ . $query;
}
}
}
elseif (strstr($url, ‘cat_id=’)) {
preg_match(’#cat_id=([0-9]+)&?#’, $url, $matches);
if (isset($matches[1])) {
$split = explode(’?', $url);
$url = $split[0];
$query = @$split[1];
$cat_url = get_category_url($matches[1]);
$url = str_replace(’categories.php’, ‘cat’.$cat_url.’.html’, $url);
$query = str_replace(’cat_id=’.$matches[1].’&’, ”, $query);
$query = str_replace(’&cat_id=’.$matches[1], ”, $query);
$query = str_replace(’cat_id=’.$matches[1], ”, $query);
if (!empty($query)) {
$url .= ‘?’ . $query;
}
}
}
else {
$url = str_replace(’categories.php’, ‘cat.html’, $url);
}
}
elseif (strstr($url, ‘details.php?image_id=’)) {
if (strstr($url, ‘image_id=’) && strstr($url, ‘mode=’)) {
preg_match(’#image_id=([0-9]+)&?#’, $url, $matches1);
preg_match(’#mode=([a-zA-Z0-9]+)&?#’, $url, $matches2);
if (isset($matches1[1]) && isset($matches2[1])) {
$split = explode(’?', $url);
$url = $split[0];
$query = @$split[1];
$url = str_replace(’details.php’, ‘img’.$matches1[1].’.’.$matches2[1].’.html’, $url);
$query = str_replace(’image_id=’.$matches1[1].’&’, ”, $query);
$query = str_replace(’&image_id=’.$matches1[1], ”, $query);
$query = str_replace(’image_id=’.$matches1[1], ”, $query);
$query = str_replace(’mode=’.$matches2[1].’&’, ”, $query);
$query = str_replace(’&mode=’.$matches2[1], ”, $query);
$query = str_replace(’mode=’.$matches2[1], ”, $query);
if (!empty($query)) {
$url .= ‘?’ . $query;
}
}
}
else {
preg_match(’#image_id=([0-9]+)&?#’, $url, $matches);
if (isset($matches[1])) {
$split = explode(’?', $url);
$url = $split[0];
$query = @$split[1];
$url = str_replace(’details.php’, ‘img’.get_image_url($matches[1]).’.html’, $url);
$query = str_replace(’image_id=’.$matches[1].’&’, ”, $query);
$query = str_replace(’&image_id=’.$matches[1], ”, $query);
$query = str_replace(’image_id=’.$matches[1], ”, $query);
if (!empty($query)) {
$url .= ‘?’ . $query;
}
}
}
}
elseif (strstr($url, ‘postcards.php?image_id=’)) {
preg_match(’#image_id=([0-9]+)&?#’, $url, $matches);
if (isset($matches[1])) {
$split = explode(’?', $url);
$url = $split[0];
$query = @$split[1];
$url = str_replace(’postcards.php’, ‘postcard.img’.$matches[1].’.html’, $url);
$query = str_replace(’image_id=’.$matches[1].’&’, ”, $query);
$query = str_replace(’&image_id=’.$matches[1], ”, $query);
$query = str_replace(’image_id=’.$matches[1], ”, $query);
if (!empty($query)) {
$url .= ‘?’ . $query;
}
}
}
}
if ($this->mode == “get” && strstr($url, $this->session_id)) {
$url .= strpos($url, ‘?’) !== false ? ‘&’ : ‘?’;
$url .= SESSION_NAME.”=”.$this->session_id;
}
if (!empty($l)) {
$url .= strpos($url, ‘?’) ? ‘&’ : ‘?’;
$url .= “l=”.$l;
}
$url = str_replace(’&’, $amp, $url);
$url .= isset($dummy_array[1]) ? “#”.$dummy_array[1] : “”;
return $url;
}
Not sure on what are you doing?! just download this package file and put it on your hosting server! seo.rar
And.. you’re done! congratulation
You can modify the code to make it works like you want. Anyway if you need to make script more stronger for SEO you might need to coding auto sitemap each time there is new images added. I try but no luck (not sure if xml works fine and accepted by most search engine because it’s works on IE but not showing correctly on firefox) maybe next time I will write it.
If you're new here, you may want to subscribe to my RSS feed. You may copy or publish this article to your blog or other site as long you give credit link back to this site article. Thanks for visiting my blog!






April 20th, 2008 at 9:14 am
Istanto, big thanks for this tips I try it and it works in my website I will back soon to read your another article
April 24th, 2008 at 2:43 pm
nice article, i was looking this way long time ago.. how you can implement this script into phpmotion script?
May 3rd, 2008 at 4:12 am
nice tips , I’ll give it a try
May 13th, 2008 at 8:47 pm
Verry much thanks…code is working…For now is ok
June 12th, 2008 at 4:10 am
thanks
July 15th, 2008 at 5:35 am
Thanks, awesome mod I just installed it on my site. No hicups and no issues at all.
Mark
July 21st, 2008 at 5:40 am
NP just waiting until google indexed your page it will bring lot of visitor daily
August 13th, 2008 at 7:44 am
Using 4images 1.7.6 and I recieve the following error after appling the mod:
Parse error: syntax error, unexpected ‘&’, expecting ‘)’ in /home/karaya/public_html/includes/sessions.php on line 401
This is the line 401 - function url($url, $amp = “&”) {
Any ideas?
Thanks!
Ray
August 14th, 2008 at 4:04 am
Hi karaya the problem is on your editor, open your file with notepad and change “ with ” hope it will fix your problem
August 14th, 2008 at 3:01 pm
Do you mean change my sessions.php using notepad? I’m using UltraEdit. Perhaps if I use the DOS mode text editing feature?
Thanks for all your help!
Ray
August 14th, 2008 at 3:16 pm
Yes, I’m sure problem in editor(I’m usually use notepad, always when change everything) or maybe because my fault make this code not run on your site, when I type character ” in article it changed into this character “ so this will make php false to execute.
August 14th, 2008 at 4:25 pm
You can download it from here http://www.istanto.net/moveweb/4imagesSEO.rar this include .htaccess and sessions.php before upload it backup your first.
August 17th, 2008 at 8:48 am
Hello and thankyou. Had it working okay until I discovered my New Images page would 404 when you clicked the thumbnail. I switched back to the default sessions.php until I can figure out why my New Images page will not work properly. Any ideas or suggestions?
Thanks!
Ray
August 17th, 2008 at 1:09 pm
Hello Ray, This code only working for 4images version 1.7.4 you might want to look for your version at http://www.4homepages.de/forum/index.php?board=11.0
October 5th, 2008 at 8:00 am
After having loads of hassle trying to work out google friendly URLS I was so lucky to find your page, I am using 1.7.6 and used your downloadable pages, uploaded them and hey! it worked 1st time, I just wanted to post a big thank you!
Martin
October 6th, 2008 at 10:42 am
Have fun Martin
October 10th, 2008 at 4:31 pm
Hello peoples!
If somebody knows, tell me! I trying to find a text about Great Britan Can somebody help me ti find it? Thanks!