Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[CONTRIBUTION] Ultimate SEO URLs v2.1 - by Chemo


Recommended Posts

Hi,

 

I installed successfuly last Ultimate SEO 2-2.2d-2 by Jack mcs. Since it was not working for Buy Now button I applied change from BUY NOW Button Fix by amchstudios dated 1 Apr 2009 and now everything is working (cyrillic character conversion too, UTF-8 shop), together and compatible with Header Tags 3.1.5 and STS 4.5.8.

My question is, is it possible and what code to change to have only clean product and category names in URL without ending -c-28 or -p-29 (ex. mysite.com/some_category.html instead of mysite.com/some_category-c-29.html) ?

 

Thanks,

Miodrag

Hello,

 

It is not suggested to do it because many other contributions relies on this format.

 

If you still need it you can try to use any other seo urls contribution.

Click here

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

It is not suggested to do it because many other contributions relies on this format.

 

If you still need it you can try to use any other seo urls contribution.

Click here

 

 

Stanislav

 

Thanks Stanislav, I would rather not to use any other contributions than those highly verified and trusted, like all Jack_mcs and yours too (the first contribution i installed is pwa with your autoinstaller 2.14).

 

Here is my small "contribution", Serbian character conversion array for ultimate seo urls :

 

serbian latin: Č=>C,č=>c,Ć=>C,ć=>c,Ž=>Z,ž=>z,Š=>S,š=>s,Đ=>Dj,đ=>dj,€=>Eura

 

serbian cyrillic: А=>A,а=>a,Б=>B,б=>b,В=>V,в=>v,Г=>G,г=>g,Д=>D,д=>d,Ђ=>Dj,ђ=>dj,Е=>E,е=>e,Ж=>Z,ж=>z,З=>Z,з=>z,И=>I,и=>i,

Ј=>J,ј=>j,К=>K,к=>k,Л=>L,л=>l,Љ=>Lj,љ=>lj,М=>M,м=>m,Н=>N,н=>n,Њ=>Nj,њ=>nj,О=>O,о=>o,П=>P,п=>p,Р=>R,р=>r,

С=>S,с=>s,T=>t,т=>t,Ћ=>C,ћ=>c,У=>U,у=>u,Ф=>F,ф=>f,Х=>H,х=>h,Ц=>C,ц=>c,Ч=>C,ч=>c,Џ=>Dz,џ=>dz,Ш=>S,ш=>s,€=>Eura

 

just copy and paste in the field for character conversion.

 

p.s. for cyrillic version first you need to change in phpmyadmin in table "configuration" field "value" from VARCHAR (255) to VARCHAR (315) or more, in order to accept all characters.

 

And I prepare Serbian language pack (Latin and Cyrillic) to follow in a few days.

Edited by misabgd
Link to comment
Share on other sites

Hello,

 

You can try to add something like gkgdktdkh785879 to the end of the .htaccess file.

 

You site must show 500 internal server error.

 

To be sure that the server reads it and the file name is correct.

 

 

Stanislav

 

Hi the problem was indeed that the htaccess file was not loaded, now it will be loaded and when I write something you you write above I do get a 500 error.

 

Only now I have the problem that almost all of my images won't work in the webshop. Problem solved, this problem was becouse of I uploaded the HTACCESS file into the folder images also (don't ask me why :D, i did this without knowing)

Edited by hooliead
Link to comment
Share on other sites

Hello,

 

Can you show the exact page url with no images because of htaccess?

 

 

Stanislav

Hi Stanislav,

 

I already edited my post, I found the problem, I uploaded the htaccess file into the folder images, now I have removed it and everyting is working.

 

Hereby I would like to thank you VERY much for all the support you have gave me, without you I would never have find the problem!!!

Link to comment
Share on other sites

Hello

 

I'm extra happy because I succeed to make everything work fine and my url's look great now. Thank you very much Jack and Stanislav ! I use the latest Jack's version (Ultimate SEO 2-2.2d-2)

 

I had the same issue with the "redirect loop" as posted above and only in the Greek language, not in english. Finally with uploading the seo.class.php from stanislavs autoinstaller package v2.7 everything works great.

 

One thing that is not absolutelly clear to me is about the character conversions.

 

On the greek version of my site I get the url ".../catalog/ανταλλακτική-μποτίλια-p-37.html" Should I change the greek characters into latin?

 

If somebody want to do me a favor, please click here and post what you see in your browsers line? (if possible please avoid posting the domain)

 

It will be a great help

Link to comment
Share on other sites

Hi! I have a question to anyone that knows!

 

can i strip out the category_id or the product_id and leave only the category_name or the product_name as the url?

 

I mean i want to convert:

 

http://www.my_store_name.com/product_name-p-1.html

 

to

 

http://www.my_store_name.com/product_name.html

 

do i have to change a rewrite rule to .htaccess or do i have to change anything in seo.class.php?

 

Since i a have unique product names and category names i do not see any use for this info to exist in my product name!

 

I see answers to similar question like mine to use another seo contribution, but this is not what i am looking for! I can not change the ultimate seo since i have tons of contribs in my shop after this one and i am afraid of the unistall results! Can someone point me what i have to change in order to strip out category and product id, i will first backup and check if everything works properly before i make any permanent changes!

 

Can someone help me (us) please?

Edited by teochris
Link to comment
Share on other sites

Hi! I have a question to anyone that knows!

 

can i strip out the category_id or the product_id and leave only the category_name or the product_name as the url?

 

I mean i want to convert:

 

http://www.my_store_name.com/product_name-p-1.html

 

to

 

http://www.my_store_name.com/product_name.html

 

do i have to change a rewrite rule to .htaccess or do i have to change anything in seo.class.php?

 

Since i a have unique product names and category names i do not see any use for this info to exist in my product name!

 

I see answers to similar question like mine to use another seo contribution, but this is not what i am looking for! I can not change the ultimate seo since i have tons of contribs in my shop after this one and i am afraid of the unistall results! Can someone point me what i have to change in order to strip out category and product id, i will first backup and check if everything works properly before i make any permanent changes!

 

Can someone help me (us) please?

Hello,

 

I can try to do it in spare time

And will let you know the result

 

 

 

Stanislav

Edited by Pektsekye
Link to comment
Share on other sites

efxaristo poly patrida ;)

 

Hello,

 

1) I installed seo urls with autoinstaller

 

2) I downloaded the NIMMIT: SEF

 

3) in the in catalog/includes/application_top.php

I have found :

function transform_uri($param) {
     $uriparts = parse_url($param);
     $newquery='';
     $scheme = $uriparts['scheme'].'://';
     if (($scheme != 'http://') && ($scheme != 'https://')) return $param;
     $host = $uriparts['host'];
     if ($host != $_SERVER['SERVER_NAME'] && $host != $_SERVER['SERVER_ADDR']) return $param;

     $path = $uriparts['path'];
     list($file,$extension) = explode('.', basename($path));
     if($extension != 'php') return $param;
     $extension = ".html";
     $host .= rtrim(dirname($path),'/');
     $query = $uriparts['query'];
     $anchor = $uriparts['anchor'];
     if ($a = explode('&',$query)){
       foreach ($a as $B) {
         list($key,$val) = split('=',$B);
         switch ($key) {
           case 'cPath':
               if(eregi('[_0-9]', $val)){
                 if($cat_arr = explode('_', $val)){
                   $count = false;
                   foreach($cat_arr as $value){
                     $cat_Q = tep_db_query("select c.categories_id, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $value . "'  and c.categories_id = cd.categories_id");
                     $cat_name = tep_db_fetch_array($cat_Q);
                     if(!$count){
                       $result .= $cat_name['categories_name'];
                       $count = true;
                     }
                     else{
                       $result .= '_' . $cat_name['categories_name'];
                     } 
                   }
                   $cat = '/category/'. str_replace(' ' , '+' , $result);
                 }
                 else{            
                   $cat = '/category/'.$val;
                 }
               }
               else{
                 $cat = '/category/'.$val;
               }
               break;
           case 'language':
               $lan = $val.'/'.$path;
               break;
           case 'products_id':
               $name_Q = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . $val . "'");
               $pro = ($t = tep_db_fetch_array($name_Q)) ? '/product/' . str_replace(" ", "_" , $t['products_name']) : '/product/'.$val;
               break;
           case 'manufacturers_id':
               $brand_Q = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . $val . "'");
               $man = ($t = tep_db_fetch_array($brand_Q)) ? '/brand/'.str_replace(" ", "_" , $t['manufacturers_name']) : $man = '/brand/'.$val;
               break;
           case 'osCsid':
               if(strstr($_SERVER["HTTP_USER_AGENT"],'Mozilla'))  $newquery .= $key.'='.$val.'&';
               break;
           default:
               if($newquery || $key) $newquery .= $key.'='.$val.'&';      
         }
       }
     }
     if ($newquery) $newquery = '?'.rtrim($newquery,'&');
     $path = '';
     if(isset($man)) $path .= $man;
     if(isset($cat)) $path .= $cat;
     if(isset($pro)) $path .= $pro;

     ((isset($man) || isset($cat) || isset($pro))) ? $host .= '' :$host .= '/';
     if($file == 'index' || $file == 'product_info'){
       if((isset($man) || isset($cat) || isset($pro))) $file= '';
     }
     if(eregi('reviews',$file)) $file = '/' . $file;
     return $scheme.$host.$file.$path.$extension.$newquery.$anchor;

   }

 

6) i have replaced modified by autoinstaller catalog/includes/functions/html_output.php with backuped one and modified the tep_href_link function in it:

     function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
         global $request_type, $session_started, $SID;

         if (!tep_not_null($page)) {
           die('</td></tr></table></td></tr></table>

     <font color="#ff0000"><b>Error!</b></font>

     <b>Unable to determine the page link!

     ');
         }

         if ($connection == 'NONSSL') {
           $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
         } elseif ($connection == 'SSL') {
           if (ENABLE_SSL == true) {
             $link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
           } else {
             $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
           }
         } else {
           die('</td></tr></table></td></tr></table>

     <font color="#ff0000"><b>Error!</b></font>

     <b>Unable to determine connection method on a link!

     Known methods: NONSSL SSL</b>

     ');
         }

         if (tep_not_null($parameters)) {
           $link .= $page . '?' . tep_output_string($parameters);
           $separator = '&';
         } else {
           $link .= $page;
           $separator = '?';
         }

         while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

     // Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
         if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
           if (tep_not_null($SID)) {
             $_sid = $SID;
           } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
             if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
               $_sid = tep_session_name() . '=' . tep_session_id();
             }
           }
         }

         if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
           while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

           $link = str_replace('?', '/', $link);
           $link = str_replace('&', '/', $link);
           $link = str_replace('=', '/', $link);

           $separator = '?';
         }

         if (isset($_sid)) {
           $link .= $separator . tep_output_string($_sid);
         }

         if (SEO_ENABLED == 'true'){
             $link = transform_uri($link);
         }

         return $link;
       }

7) i have replaced modified by autoinstaller .htaccess file with one from the NIMMIT: SEF package.

And replaced

RewriteBase /

with

RewriteBase /catalog/

because my store is installed in the catalog directory

 

Now I have urls :

catalog/category/DVD+Movies_Action.html

catalog/product/The_Matrix.html

 

But there are limitations for the NIMMIT SEF contribution:

 

1) You can't have two product names the same (or it will only ever show the first one)

2) You can't use any of the following charicters in you product titles, category names or manufacturers names + ' " ( I'm sure there are more that will come up)

3) You can't use any non url charicter in your product titles, category names or manufacturers names e.g. £ © ™

 

so I have the Not Found page error for this url:

catalog/product/Microsoft_Internet_Keyboard_PS/2.html

because of slash / I think

 

also I see that on the product listing page products urls contain category name

catalog/category/Hardware_Keyboards/product/Microsoft_IntelliMouse_Explorer.html

 

I think it can be corrected in the transform_uri function if you don't like it

 

 

 

 

Stanislav

Link to comment
Share on other sites

Here is what I got:

ανταλλακτική-μποτίλια-p-37.html

The other pages of the site also work fine for me with my Firefox 3.0.11

Stanislav

Thank you very much Stanislav - ευχαριστω πολυ

 

Is there any reason to make the character conversion from greek into latin? I mean it's even better, if somebody search in google for "φ ιλτρο νερου" in greek charakters, to have exactly this in the url too (apart of meta tags and content it self), instead of having the greeklish "filt ro neroy"

 

Am I wrong in this? Whats the purpose of the character conversion?

Link to comment
Share on other sites

Thank you very much Stanislav - ευχαριστω πολυ

 

Is there any reason to make the character conversion from greek into latin? I mean it's even better, if somebody search in google for "φ ιλτρο νερου" in greek charakters, to have exactly this in the url too (apart of meta tags and content it self), instead of having the greeklish "filt ro neroy"

 

Am I wrong in this? Whats the purpose of the character conversion?

 

Hello,

 

I don't know.

 

I have just tried to use Cyrillic in categories names on my test site.

And got wrong urls:

hardware-107810771083-c-1.html

hardware-железо-c-1.html

 

then I have replaced

define('CHARSET', 'iso-8859-1');

with

define('CHARSET', 'utf-8');

in two files:

catalog/includes/languages/index.php

catalog/admin/includes/languages/index.php

 

And have set output W3C valid URLs (parameter string) to false

in the seo urls configuration

 

Now I have correct url with Cyrillic characters:

catalog/hardware-железо-c-1.html

 

 

 

Stanislav

Link to comment
Share on other sites

I have just tried to use Cyrillic in categories names on my test site.

And got wrong urls:

hardware-107810771083-c-1.html

hardware-железо-c-1.html

 

then I have replaced

define('CHARSET', 'iso-8859-1');

with

define('CHARSET', 'utf-8');

in two files:

catalog/includes/languages/index.php

catalog/admin/includes/languages/index.php

 

And have set output W3C valid URLs (parameter string) to false

in the seo urls configuration

 

Now I have correct url with Cyrillic characters:

catalog/hardware-железо-c-1.html

 

I have it the same + all files of the greek language folder set to utf-8 and I'm getting perfect and very nice greek characters

 

W3C option is set to false, if set to true I'm getting non readable url's

 

I'm happy that I don't have to convert the greek characters.

Link to comment
Share on other sites

I just updated to the last version and now I cannot turn off the Seo URL, nothing works any more, I tried to set the "enable Seo URLs to false, but although it stows to be false the website links are still SEO friendly, I tried Add cPath to product URLs? True, but its not been added, Add category parent to beginning of URLs? I set it to false but still the links are /category/product.html.

Link to comment
Share on other sites

Hello,

 

1) I installed seo urls with autoinstaller

 

2) I downloaded the NIMMIT: SEF

 

3) in the in catalog/includes/application_top.php

I have found :

function transform_uri($param) {
     $uriparts = parse_url($param);
     $newquery='';
     $scheme = $uriparts['scheme'].'://';
     if (($scheme != 'http://') && ($scheme != 'https://')) return $param;
     $host = $uriparts['host'];
     if ($host != $_SERVER['SERVER_NAME'] && $host != $_SERVER['SERVER_ADDR']) return $param;

     $path = $uriparts['path'];
     list($file,$extension) = explode('.', basename($path));
     if($extension != 'php') return $param;
     $extension = ".html";
     $host .= rtrim(dirname($path),'/');
     $query = $uriparts['query'];
     $anchor = $uriparts['anchor'];
     if ($a = explode('&',$query)){
       foreach ($a as $B) {
         list($key,$val) = split('=',$B);
         switch ($key) {
           case 'cPath':
               if(eregi('[_0-9]', $val)){
                 if($cat_arr = explode('_', $val)){
                   $count = false;
                   foreach($cat_arr as $value){
                     $cat_Q = tep_db_query("select c.categories_id, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $value . "'  and c.categories_id = cd.categories_id");
                     $cat_name = tep_db_fetch_array($cat_Q);
                     if(!$count){
                       $result .= $cat_name['categories_name'];
                       $count = true;
                     }
                     else{
                       $result .= '_' . $cat_name['categories_name'];
                     } 
                   }
                   $cat = '/category/'. str_replace(' ' , '+' , $result);
                 }
                 else{            
                   $cat = '/category/'.$val;
                 }
               }
               else{
                 $cat = '/category/'.$val;
               }
               break;
           case 'language':
               $lan = $val.'/'.$path;
               break;
           case 'products_id':
               $name_Q = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . $val . "'");
               $pro = ($t = tep_db_fetch_array($name_Q)) ? '/product/' . str_replace(" ", "_" , $t['products_name']) : '/product/'.$val;
               break;
           case 'manufacturers_id':
               $brand_Q = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . $val . "'");
               $man = ($t = tep_db_fetch_array($brand_Q)) ? '/brand/'.str_replace(" ", "_" , $t['manufacturers_name']) : $man = '/brand/'.$val;
               break;
           case 'osCsid':
               if(strstr($_SERVER["HTTP_USER_AGENT"],'Mozilla'))  $newquery .= $key.'='.$val.'&';
               break;
           default:
               if($newquery || $key) $newquery .= $key.'='.$val.'&';      
         }
       }
     }
     if ($newquery) $newquery = '?'.rtrim($newquery,'&');
     $path = '';
     if(isset($man)) $path .= $man;
     if(isset($cat)) $path .= $cat;
     if(isset($pro)) $path .= $pro;

     ((isset($man) || isset($cat) || isset($pro))) ? $host .= '' :$host .= '/';
     if($file == 'index' || $file == 'product_info'){
       if((isset($man) || isset($cat) || isset($pro))) $file= '';
     }
     if(eregi('reviews',$file)) $file = '/' . $file;
     return $scheme.$host.$file.$path.$extension.$newquery.$anchor;

   }

 

6) i have replaced modified by autoinstaller catalog/includes/functions/html_output.php with backuped one and modified the tep_href_link function in it:

     function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
         global $request_type, $session_started, $SID;

         if (!tep_not_null($page)) {
           die('</td></tr></table></td></tr></table>

     <font color="#ff0000"><b>Error!</b></font>

     <b>Unable to determine the page link!

     ');
         }

         if ($connection == 'NONSSL') {
           $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
         } elseif ($connection == 'SSL') {
           if (ENABLE_SSL == true) {
             $link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
           } else {
             $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
           }
         } else {
           die('</td></tr></table></td></tr></table>

     <font color="#ff0000"><b>Error!</b></font>

     <b>Unable to determine connection method on a link!

     Known methods: NONSSL SSL</b>

     ');
         }

         if (tep_not_null($parameters)) {
           $link .= $page . '?' . tep_output_string($parameters);
           $separator = '&';
         } else {
           $link .= $page;
           $separator = '?';
         }

         while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

     // Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
         if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
           if (tep_not_null($SID)) {
             $_sid = $SID;
           } elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
             if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
               $_sid = tep_session_name() . '=' . tep_session_id();
             }
           }
         }

         if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
           while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

           $link = str_replace('?', '/', $link);
           $link = str_replace('&', '/', $link);
           $link = str_replace('=', '/', $link);

           $separator = '?';
         }

         if (isset($_sid)) {
           $link .= $separator . tep_output_string($_sid);
         }

         if (SEO_ENABLED == 'true'){
             $link = transform_uri($link);
         }

         return $link;
       }

7) i have replaced modified by autoinstaller .htaccess file with one from the NIMMIT: SEF package.

And replaced

RewriteBase /

with

RewriteBase /catalog/

because my store is installed in the catalog directory

 

Now I have urls :

catalog/category/DVD+Movies_Action.html

catalog/product/The_Matrix.html

 

But there are limitations for the NIMMIT SEF contribution:

 

1) You can't have two product names the same (or it will only ever show the first one)

2) You can't use any of the following charicters in you product titles, category names or manufacturers names + ' " ( I'm sure there are more that will come up)

3) You can't use any non url charicter in your product titles, category names or manufacturers names e.g. £ © ™

 

so I have the Not Found page error for this url:

catalog/product/Microsoft_Internet_Keyboard_PS/2.html

because of slash / I think

 

also I see that on the product listing page products urls contain category name

catalog/category/Hardware_Keyboards/product/Microsoft_IntelliMouse_Explorer.html

 

I think it can be corrected in the transform_uri function if you don't like it

 

 

 

 

Stanislav

 

 

Hi Stanislav!

 

Thanks for your instructions! Everything works fine while visitor wants the Greek language! If someone tries to change language nothing happens, he still sees Greek language!

 

Do you have a clue what is wrong?

 

Here is my html_output.php

 

<?php
/*
 $Id: html_output.php 1739 2007-12-20 00:52:16Z hpdl $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2007 osCommerce

 Released under the GNU General Public License
*/

////
// The HTML href link wrapper function

// Ultimate SEO URLs v2.1
// The HTML href link wrapper function

function tep_href_link($page = '', $parameters = '', $connection = 'NONSSL', $add_session_id = true, $search_engine_safe = true) {
global $request_type, $session_started, $SID;

if (!tep_not_null($page)) {
die('</td></tr></table></td></tr></table>

<font color="#ff0000"><b>Error!</b></font>

<b>Unable to determine the page link!

');
}

if ($connection == 'NONSSL') {
$link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL == true) {
$link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG;
} else {
$link = HTTP_SERVER . DIR_WS_HTTP_CATALOG;
}
} else {
die('</td></tr></table></td></tr></table>

<font color="#ff0000"><b>Error!</b></font>

<b>Unable to determine connection method on a link!

Known methods: NONSSL SSL</b>

');
}

if (tep_not_null($parameters)) {
$link .= $page . '?' . tep_output_string($parameters);
$separator = '&';
} else {
$link .= $page;
$separator = '?';
}

while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);

// Add the session ID when moving from different HTTP and HTTPS servers, or when SID is defined
if ( ($add_session_id == true) && ($session_started == true) && (SESSION_FORCE_COOKIE_USE == 'False') ) {
if (tep_not_null($SID)) {
$_sid = $SID;
} elseif ( ( ($request_type == 'NONSSL') && ($connection == 'SSL') && (ENABLE_SSL == true) ) || ( ($request_type == 'SSL') && ($connection == 'NONSSL') ) ) {
if (HTTP_COOKIE_DOMAIN != HTTPS_COOKIE_DOMAIN) {
$_sid = tep_session_name() . '=' . tep_session_id();
}
}
}

if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);

$link = str_replace('?', '/', $link);
$link = str_replace('&', '/', $link);
$link = str_replace('=', '/', $link);

$separator = '?';
}

if (isset($_sid)) {
$link .= $separator . tep_output_string($_sid);
}

if (SEO_ENABLED == 'true'){
$link = transform_uri($link);
}

return $link;
}






////
// The HTML image wrapper function
 function tep_image($src, $alt = '', $width = '', $height = '', $parameters = '') {
if ( (empty($src) || ($src == DIR_WS_IMAGES)) && (IMAGE_REQUIRED == 'false') ) {
  return false;
}

// alt is added to the img tag even if it is null to prevent browsers from outputting
// the image filename as default
$image = '<img src="' . tep_output_string($src) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) {
  $image .= ' title=" ' . tep_output_string($alt) . ' "';
}

if ( (CONFIG_CALCULATE_IMAGE_SIZE == 'true') && (empty($width) || empty($height)) ) {
  if ($image_size = @getimagesize($src)) {
	if (empty($width) && tep_not_null($height)) {
	  $ratio = $height / $image_size[1];
	  $width = intval($image_size[0] * $ratio);
	} elseif (tep_not_null($width) && empty($height)) {
	  $ratio = $width / $image_size[0];
	  $height = intval($image_size[1] * $ratio);
	} elseif (empty($width) && empty($height)) {
	  $width = $image_size[0];
	  $height = $image_size[1];
	}
  } elseif (IMAGE_REQUIRED == 'false') {
	return false;
  }
}

if (tep_not_null($width) && tep_not_null($height)) {
  $image .= ' width="' . tep_output_string($width) . '" height="' . tep_output_string($height) . '"';
}

if (tep_not_null($parameters)) $image .= ' ' . $parameters;

$image .= '>';

return $image;
 }

////
// The HTML form submit button wrapper function
// Outputs a button in the selected language
 function tep_image_submit($image, $alt = '', $parameters = '') {
global $language;

$image_submit = '<input type="image" src="' . tep_output_string(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image) . '" border="0" alt="' . tep_output_string($alt) . '"';

if (tep_not_null($alt)) $image_submit .= ' title=" ' . tep_output_string($alt) . ' "';

if (tep_not_null($parameters)) $image_submit .= ' ' . $parameters;

$image_submit .= '>';

return $image_submit;
 }

////
// Output a function button in the selected language
 function tep_image_button($image, $alt = '', $parameters = '') {
global $language;

return tep_image(DIR_WS_LANGUAGES . $language . '/images/buttons/' . $image, $alt, '', '', $parameters);
 }

////
// Output a separator either through whitespace, or with an image
 function tep_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') {
return tep_image(DIR_WS_IMAGES . $image, '', $width, $height);
 }

////
// Output a form
 function tep_draw_form($name, $action, $method = 'post', $parameters = '') {
$form = '<form name="' . tep_output_string($name) . '" action="' . tep_output_string($action) . '" method="' . tep_output_string($method) . '"';

if (tep_not_null($parameters)) $form .= ' ' . $parameters;

$form .= '>';

return $form;
 }

////
// Output a form input field
 function tep_draw_input_field($name, $value = '', $parameters = '', $type = 'text', $reinsert_value = true) {
global $HTTP_GET_VARS, $HTTP_POST_VARS;

$field = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
  if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
	$value = stripslashes($HTTP_GET_VARS[$name]);
  } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
	$value = stripslashes($HTTP_POST_VARS[$name]);
  }
}

if (tep_not_null($value)) {
  $field .= ' value="' . tep_output_string($value) . '"';
}

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

return $field;
 }

////
// Output a form password field
 function tep_draw_password_field($name, $value = '', $parameters = 'maxlength="40"') {
return tep_draw_input_field($name, $value, $parameters, 'password', false);
 }

////
// Output a selection field - alias function for tep_draw_checkbox_field() and tep_draw_radio_field()
 function tep_draw_selection_field($name, $type, $value = '', $checked = false, $parameters = '') {
global $HTTP_GET_VARS, $HTTP_POST_VARS;

$selection = '<input type="' . tep_output_string($type) . '" name="' . tep_output_string($name) . '"';

if (tep_not_null($value)) $selection .= ' value="' . tep_output_string($value) . '"';

if ( ($checked == true) || (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name]) && (($HTTP_GET_VARS[$name] == 'on') || (stripslashes($HTTP_GET_VARS[$name]) == $value))) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name]) && (($HTTP_POST_VARS[$name] == 'on') || (stripslashes($HTTP_POST_VARS[$name]) == $value))) ) {
  $selection .= ' CHECKED';
}

if (tep_not_null($parameters)) $selection .= ' ' . $parameters;

$selection .= '>';

return $selection;
 }

////
// Output a form checkbox field
 function tep_draw_checkbox_field($name, $value = '', $checked = false, $parameters = '') {
return tep_draw_selection_field($name, 'checkbox', $value, $checked, $parameters);
 }

////
// Output a form radio field
 function tep_draw_radio_field($name, $value = '', $checked = false, $parameters = '') {
return tep_draw_selection_field($name, 'radio', $value, $checked, $parameters);
 }

////
// Output a form textarea field
 function tep_draw_textarea_field($name, $wrap, $width, $height, $text = '', $parameters = '', $reinsert_value = true) {
global $HTTP_GET_VARS, $HTTP_POST_VARS;

$field = '<textarea name="' . tep_output_string($name) . '" wrap="' . tep_output_string($wrap) . '" cols="' . tep_output_string($width) . '" rows="' . tep_output_string($height) . '"';

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

if ( ($reinsert_value == true) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
  if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
	$field .= tep_output_string_protected(stripslashes($HTTP_GET_VARS[$name]));
  } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
	$field .= tep_output_string_protected(stripslashes($HTTP_POST_VARS[$name]));
  }
} elseif (tep_not_null($text)) {
  $field .= tep_output_string_protected($text);
}

$field .= '</textarea>';

return $field;
 }

////
// Output a form hidden field
 function tep_draw_hidden_field($name, $value = '', $parameters = '') {
global $HTTP_GET_VARS, $HTTP_POST_VARS;

$field = '<input type="hidden" name="' . tep_output_string($name) . '"';

if (tep_not_null($value)) {
  $field .= ' value="' . tep_output_string($value) . '"';
} elseif ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) {
  if ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) ) {
	$field .= ' value="' . tep_output_string(stripslashes($HTTP_GET_VARS[$name])) . '"';
  } elseif ( (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) {
	$field .= ' value="' . tep_output_string(stripslashes($HTTP_POST_VARS[$name])) . '"';
  }
}

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

return $field;
 }

////
// Hide form elements
 function tep_hide_session_id() {
global $session_started, $SID;

if (($session_started == true) && tep_not_null($SID)) {
  return tep_draw_hidden_field(tep_session_name(), tep_session_id());
}
 }

////
// Output a form pull down menu
 function tep_draw_pull_down_menu($name, $values, $default = '', $parameters = '', $required = false) {
global $HTTP_GET_VARS, $HTTP_POST_VARS;

$field = '<select name="' . tep_output_string($name) . '"';

if (tep_not_null($parameters)) $field .= ' ' . $parameters;

$field .= '>';

if (empty($default) && ( (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) || (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) ) ) {
  if (isset($HTTP_GET_VARS[$name]) && is_string($HTTP_GET_VARS[$name])) {
	$default = stripslashes($HTTP_GET_VARS[$name]);
  } elseif (isset($HTTP_POST_VARS[$name]) && is_string($HTTP_POST_VARS[$name])) {
	$default = stripslashes($HTTP_POST_VARS[$name]);
  }
}

for ($i=0, $n=sizeof($values); $i<$n; $i++) {
  $field .= '<option value="' . tep_output_string($values[$i]['id']) . '"';
  if ($default == $values[$i]['id']) {
	$field .= ' SELECTED';
  }

  $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '"', '\'' => ''', '<' => '<', '>' => '>')) . '</option>';
}
$field .= '</select>';

if ($required == true) $field .= TEXT_FIELD_REQUIRED;

return $field;
 }

////
// Creates a pull-down list of countries
 function tep_get_country_list($name, $selected = '', $parameters = '') {
$countries_array = array(array('id' => '', 'text' => PULL_DOWN_DEFAULT));
$countries = tep_get_countries();

for ($i=0, $n=sizeof($countries); $i<$n; $i++) {
  $countries_array[] = array('id' => $countries[$i]['countries_id'], 'text' => $countries[$i]['countries_name']);
}

return tep_draw_pull_down_menu($name, $countries_array, $selected, $parameters);
 }

////
// Creates a pull-down list for dates	
function tep_draw_pull_down_date($name='date', $day='', $month='', $year='', $full=false, $mnth=false, $starty=''){
if ($day=='') {$day=date('d');}
if ($month=='') {$month=date('m');}
if ($year=='') {$year=date('Y');}
$endy=date('Y')-8;
if ($starty=='') {$starty=date('Y')-1;$endy=date('Y')+2;} 
$named = $name . 'd';
$namem = $name . 'm';
// Array for days
$days=array();
for($i=1; $i<=31; $i++){
if(strlen($i)!= 2){
$j = '0' . $i;
} else {
$j = $i;
} 
$days[] = array('id' => $j, 'text' => $j); }

if ($mnth) {
$months = array(array('id' => '01', 'text' => TEXT_DATE_JAN),
array('id' => '02', 'text' => TEXT_DATE_FEB),
array('id' => '03', 'text' => TEXT_DATE_MAR),
array('id' => '04', 'text' => TEXT_DATE_APR),
array('id' => '05', 'text' => TEXT_DATE_MAY),
array('id' => '06', 'text' => TEXT_DATE_JUN),
array('id' => '07', 'text' => TEXT_DATE_JUL),
array('id' => '08', 'text' => TEXT_DATE_AUG),
array('id' => '09', 'text' => TEXT_DATE_SEP),
array('id' => '10', 'text' => TEXT_DATE_OCT),
array('id' => '11', 'text' => TEXT_DATE_NOV),
array('id' => '12', 'text' => TEXT_DATE_DEC));
} else {
for($i=1; $i<=12; $i++){
if(strlen($i)!= 2){
$j = '0' . $i;
} else {
$j = $i;
} 
$months[] = array('id' => $j, 'text' => $j); }}

for($i=$starty; $i<=$endy; $i++){
$j = $i;
if ($full) {
$y = $i - 2000;
if(strlen($y)!= 2){
$j = '0' . $y;
} else {
$j = $y;
} }
$years[] = array('id' => $i, 'text' => $j); }
$field='';
if(STORE_COUNTRY == 223 || STORE_COUNTRY == 224) {
$field .= tep_draw_pull_down_menu($named, $months, $month);
$field .= tep_draw_pull_down_menu($namem, $days, $day); }
else {
$field .= tep_draw_pull_down_menu($named, $days, $day);
$field .= tep_draw_pull_down_menu($namem, $months, $month); }
$field .= tep_draw_pull_down_menu($name, $years, $year);

return $field;
 }  

?>

 

Also i would prefer not to have the words product, category etc in the url address i think this is easy done by altering .htaccess

 

Thanks again

Link to comment
Share on other sites

I just updated to the last version and now I cannot turn off the Seo URL, nothing works any more, I tried to set the "enable Seo URLs to false, but although it stows to be false the website links are still SEO friendly, I tried Add cPath to product URLs? True, but its not been added, Add category parent to beginning of URLs? I set it to false but still the links are /category/product.html.

 

Hello,

 

Can you tell the exact version numbers and the package's dates?

 

Also tell what exactly have you done to update.

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

Try to use modified transform_uri function:

function transform_uri($param) {
   global $languages_id;

   $uriparts = parse_url($param);
   $newquery='';
   $scheme = $uriparts['scheme'].'://';
   if (($scheme != 'http://') && ($scheme != 'https://')) return $param;
   $host = $uriparts['host'];
   if ($host != $_SERVER['SERVER_NAME'] && $host != $_SERVER['SERVER_ADDR']) return $param;

   $path = $uriparts['path'];
   list($file,$extension) = explode('.', basename($path));
   if($extension != 'php') return $param;
   $extension = ".html";
   $host .= rtrim(dirname($path),'/');
   $query = $uriparts['query'];
   $anchor = $uriparts['anchor'];
   if ($a = explode('&',$query)){
   foreach ($a as $B) {
   list($key,$val) = split('=',$B);
   switch ($key) {
   case 'cPath':
   if(eregi('[_0-9]', $val)){
   if($cat_arr = explode('_', $val)){
   $count = false;
   foreach($cat_arr as $value){
   $cat_Q = tep_db_query("select c.categories_id, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $value . "' and c.categories_id = cd.categories_id AND cd.language_id='".(int)$languages_id."' LIMIT 1");
   $cat_name = tep_db_fetch_array($cat_Q);
   if(!$count){
   $result .= $cat_name['categories_name'];
   $count = true;
   }
   else{
   $result .= '_' . $cat_name['categories_name'];
   }
   }
   $cat = '/category/'. str_replace(' ' , '+' , $result);
   }
   else{
   $cat = '/category/'.$val;
   }
   }
   else{
   $cat = '/category/'.$val;
   }
   break;
   case 'language':
   $lan = $val.'/'.$path;
   break;
   case 'products_id':
   $name_Q = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . $val . "' AND language_id='".(int)$languages_id."' LIMIT 1 ");
   $pro = ($t = tep_db_fetch_array($name_Q)) ? '/product/' . str_replace(" ", "_" , $t['products_name']) : '/product/'.$val;
   break;
   case 'manufacturers_id':
   $brand_Q = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . $val . "'");
   $man = ($t = tep_db_fetch_array($brand_Q)) ? '/brand/'.str_replace(" ", "_" , $t['manufacturers_name']) : $man = '/brand/'.$val;
   break;
   case 'osCsid':
   if(strstr($_SERVER["HTTP_USER_AGENT"],'Mozilla')) $newquery .= $key.'='.$val.'&';
   break;
   default:
   if($newquery || $key) $newquery .= $key.'='.$val.'&';
   }
   }
   }
   if ($newquery) $newquery = '?'.rtrim($newquery,'&');
   $path = '';
   if(isset($man)) $path .= $man;
   if(isset($cat)) $path .= $cat;
   if(isset($pro)) $path .= $pro;

   ((isset($man) || isset($cat) || isset($pro))) ? $host .= '' :$host .= '/';
   if($file == 'index' || $file == 'product_info'){
   if((isset($man) || isset($cat) || isset($pro))) $file= '';
   }
   if(eregi('reviews',$file)) $file = '/' . $file;
   return $scheme.$host.$file.$path.$extension.$newquery.$anchor;

}

 

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

Can you tell the exact version numbers and the package's dates?

 

Also tell what exactly have you done to update.

 

 

Stanislav

 

I had before 2.1something I'm not sure exactly, how do I found the version, anyway I downloaded Ultimate SEO 2-2.2d-2 from 5-Jul-2009 and override my previous seo.class.php in includes/classes/seo.class.php, that's all, in the admin i can see the extra option, but they don work I canst turn it off, or any other option will not work

Link to comment
Share on other sites

I had before 2.1something I'm not sure exactly, how do I found the version, anyway I downloaded Ultimate SEO 2-2.2d-2 from 5-Jul-2009 and override my previous seo.class.php in includes/classes/seo.class.php, that's all, in the admin i can see the extra option, but they don work I canst turn it off, or any other option will not work

 

Hello,

 

You have to find your old version and uninstall it.

Then install the latest again.

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

Try to use modified transform_uri function:

function transform_uri($param) {
   global $languages_id;

   $uriparts = parse_url($param);
   $newquery='';
   $scheme = $uriparts['scheme'].'://';
   if (($scheme != 'http://') && ($scheme != 'https://')) return $param;
   $host = $uriparts['host'];
   if ($host != $_SERVER['SERVER_NAME'] && $host != $_SERVER['SERVER_ADDR']) return $param;

   $path = $uriparts['path'];
   list($file,$extension) = explode('.', basename($path));
   if($extension != 'php') return $param;
   $extension = ".html";
   $host .= rtrim(dirname($path),'/');
   $query = $uriparts['query'];
   $anchor = $uriparts['anchor'];
   if ($a = explode('&',$query)){
   foreach ($a as $B) {
   list($key,$val) = split('=',$B);
   switch ($key) {
   case 'cPath':
   if(eregi('[_0-9]', $val)){
   if($cat_arr = explode('_', $val)){
   $count = false;
   foreach($cat_arr as $value){
   $cat_Q = tep_db_query("select c.categories_id, cd.categories_name from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $value . "' and c.categories_id = cd.categories_id AND cd.language_id='".(int)$languages_id."' LIMIT 1");
   $cat_name = tep_db_fetch_array($cat_Q);
   if(!$count){
   $result .= $cat_name['categories_name'];
   $count = true;
   }
   else{
   $result .= '_' . $cat_name['categories_name'];
   }
   }
   $cat = '/category/'. str_replace(' ' , '+' , $result);
   }
   else{
   $cat = '/category/'.$val;
   }
   }
   else{
   $cat = '/category/'.$val;
   }
   break;
   case 'language':
   $lan = $val.'/'.$path;
   break;
   case 'products_id':
   $name_Q = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . $val . "' AND language_id='".(int)$languages_id."' LIMIT 1 ");
   $pro = ($t = tep_db_fetch_array($name_Q)) ? '/product/' . str_replace(" ", "_" , $t['products_name']) : '/product/'.$val;
   break;
   case 'manufacturers_id':
   $brand_Q = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . $val . "'");
   $man = ($t = tep_db_fetch_array($brand_Q)) ? '/brand/'.str_replace(" ", "_" , $t['manufacturers_name']) : $man = '/brand/'.$val;
   break;
   case 'osCsid':
   if(strstr($_SERVER["HTTP_USER_AGENT"],'Mozilla')) $newquery .= $key.'='.$val.'&';
   break;
   default:
   if($newquery || $key) $newquery .= $key.'='.$val.'&';
   }
   }
   }
   if ($newquery) $newquery = '?'.rtrim($newquery,'&');
   $path = '';
   if(isset($man)) $path .= $man;
   if(isset($cat)) $path .= $cat;
   if(isset($pro)) $path .= $pro;

   ((isset($man) || isset($cat) || isset($pro))) ? $host .= '' :$host .= '/';
   if($file == 'index' || $file == 'product_info'){
   if((isset($man) || isset($cat) || isset($pro))) $file= '';
   }
   if(eregi('reviews',$file)) $file = '/' . $file;
   return $scheme.$host.$file.$path.$extension.$newquery.$anchor;

}

 

 

 

Stanislav

 

Second test perfomed worse than the first one! Still language can not change and now i get uri in greek letters so i can not see any products - i get empty product descriptions! For time being i will stick to original SEO uri format. Maybe it would be easier to change something in seo.class.php from the following:

 

$this->reg_anchors = array('products_id' => '-p-',
							   'cPath' => '-c-',
							   'manufacturers_id' => '-m-',
							   'pID' => '-pi-',
							   'tPath' => '-t-',
							   'articles_id' => '-a-',
							   'authors_id' => '-au-',
							   'products_id_review' => '-pr-',
							   'products_id_review_info' => '-pri-',
							   'info_id' => '-i-',
							   'faqdesk_id' => '-f-',
							   'faqPath' => '-fc-',
							   'faqdesk_reviews_id' => '-fri-',
							   'faqdesk_article_id' => '-fra-',
							   'pages_id' => '-pm-',
							   //'pollid' => '-po-',
							   'newsdesk_id' => '-n-',
							   'newsPath' => '-nc-',
							   'newsdesk_reviews_id' => '-nri-',
							   'newsdesk_article_id' => '-nra-',
							   'lPath' => '-links-'
							   );

 

or maybe add something like products_id=''

Edited by teochris
Link to comment
Share on other sites

I had before 2.1something I'm not sure exactly, how do I found the version, anyway I downloaded Ultimate SEO 2-2.2d-2 from 5-Jul-2009 and override my previous seo.class.php in includes/classes/seo.class.php, that's all, in the admin i can see the extra option, but they don work I canst turn it off, or any other option will not work

 

Ok, I tried this, I removed from the SQL, all the tablems from categories, i replaced the

 

- includes/classes/seo.class.php

- admin/includes/functions/general.php

 

then i checked the files bellow to match the install instructions

 

- admin/categories.php

- includes/functions/html_output.php

- includes/application_top.php

- .htaccess

 

But still the same. Is not working, its always enabled.

Link to comment
Share on other sites

Ok, I tried this, I removed from the SQL, all the tablems from categories, i replaced the

 

- includes/classes/seo.class.php

- admin/includes/functions/general.php

 

then i checked the files bellow to match the install instructions

 

- admin/categories.php

- includes/functions/html_output.php

- includes/application_top.php

- .htaccess

 

But still the same. Is not working, its always enabled.

 

Hello,

 

But you didn't find your old version and didn't uninstall it.

 

Maybe you have some extra code from your old contribution that is not in the files that you checked.

 

 

Stanislav

Link to comment
Share on other sites

Hello,

 

But you didn't find your old version and didn't uninstall it.

 

Maybe you have some extra code from your old contribution that is not in the files that you checked.

 

 

Stanislav

 

Ok, I found the problem, when I installed the new one the seo.class.php creates new fields inside the table configuration and also leave the old ones too, so it had the old ones where it was enabled and also created new, I thought it will just add the extra field. But its working fine now. Thank you for the help. Just a quick question please the new one has the option Add category parent to beginning of URLs? so the link will be /category/product.html and this is cool because i have the page in English and Spanish and this will eliminate some of the duplicate pages, but my pages are indexed as /product.html, is this a problem, if I add the categories in front would I lose all the index pages?

 

Also for the spanish links the "Output W3C valid URLs (parameter string)?" creates some strange characters, is this ok?

Link to comment
Share on other sites

Hi, I need a bit of advice please. Would you guys recommend adding the category parent to beginning of URL or not? How is more search engine friendly? My links are currently index without the category in front if I do enable the "Add category parent to beginning of URLs?" would i loose all my indexed links?

 

Thanks

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...