Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
Earthenware
... I fixed this by running "Reset SEO URLs Cache", so I assume that there was a cache of URLs for product_ids somewhere.
I don't want to have to do this on a regular basis so would disabling caching (i.e. changing "Enable SEO cache to save queries" to false) prevent this from happening in future? ...
The better question is WHY do you feel you need to change around product_id's? What business purpose does changing an internal number used to identify a product within the Zen Cart software serve?
Best practice for a website (and e-commerce site) is to NOT change the product_id (or URLs unless they are 301'ed / canonical linked - which this module does for you based upon the product_id remaining the same).
Quote:
Originally Posted by
Earthenware
Clicking a product brought up a URL for another product, although the actual page was correct.
Changing the internal id used by Zen Cart will have this effect. This holds true for Zen Cart in general as well as all of the alternative URL generation tools. It affects far more than just the "URL" and the one issue you quickly identified.
For example (even when not using a module to generate alternative URLs): when customer logs into their account on the site, pulls up their invoice, and then clicks a link to see the product details... If one has changed the product a product_id points to, the customer is sent to a completely different product from the one purchased.
I could go on with other reasons / issues caused by re-assigning product_id's to different products, but there are plenty of articles / threads on the forums here and internet in general on the subject.
When adding new products it is almost always better to not manually edit the PRODUCTS table (and let a new product_id be assigned). If one needs to import from a spreadsheet, use a tool such as "ez-populate". The first time this module see's a new product_id it will generate the appropriate URL based upon the product title / category and save the URL in the cache.
If one no longer carries a product, simply turn it off in the admin interface - or - set the quantity to zero and add a big bold colored line indicating the product has been replaced with a newer / comparable product (with link). There are a few additional ways to handle products "no longer being sold", but such a discussion would be better suited for a new thread.
Quote:
Originally Posted by
Earthenware
... Would it have any other side-effects?
Yes. For every page load Zen Cart would need to rebuild the list of URLs for every URL appearing on the page (usually every category enabled in the database, every enabled EZ-Page, and any product URL showing on the page). This list basically includes every URL on the page including in the header, footer, and menus. The cache reduces the amount of processing time by saving a copy of the URL <--> product / category / ez-page mappings.
Of course if one is not on a server with limited CPU resources... The impact might be minimal... But on most shared and VPS hosting packages the CPU usage is limited and having the cache enabled will have a significant performance impact during peak website usage.
Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
DivaVocals
Of course it will.. My point was that it's really NOT a good practice to CONTINUALLY rebuild your products table which would result in product IDs for products changing.. Are you REALLY going to do this again??? If NOT then NO you can leave the cache setting alone.. I'm curious as to why you are planning to make rebuilding your products table a regular activity..
I understand your point. The periodic need for rebuilding the PRODUCTS table is administrative. It's not something that I will need to do every day but it will come up now and again.
Regarding the association between products_name and products_id, I assume you are referring to the impact that changing them would have on search engines? I had considered this and my first attempt at re-writing URLs excluded the products_id altogether. That's when I learned that Zen Cart uses GET to transfer some parameters. Actually, it worked great until adding something to the shopping cart :laugh:
Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
Earthenware
I understand your point. The periodic need for rebuilding the PRODUCTS table is administrative. It's not something that I will need to do every day but it will come up now and again.
What BUSINESS REASON would require this???????????
Re: Ultimate SEO 2.200+ (new features)
...and thanks for the reply lhungil.
It's a great add-on, by the way.
Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
DivaVocals
Okay so I have a site which Zen Cart is in a subfolder of a WordPress site.. WordPress has it's own .htaccess file as you know.. the readme instructions say:
Code:
If you have an existing .htaccess file in the folder
where you installed Zen Cart merge the new .htaccess
file with the existing file (remember rules are matched
in order, so any custom URL transformations or
redirects should appear before the "Start Ultimate
SEO URLs" block. Upload the .htaccess file to the
folder where you installed Zen Cart.
My Zen Cart folder does NOT have a .htaccess file. And I got an error AS SOON as I uploaded the .htaccess file. I am assuming that the RIGHT way to do this is to merge my .htaccess with the .htaccess from this add-on.. Could use a hand with that.. Here's the WordPress .htaccess file contents..
Code:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
So I made progress the site comes up, and the product links look scorrect, but they all lead to "Page Not Found" errors. So here is my .htaccess file now:
Code:
# BEGIN WordPress
#<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteRule ^index\.php$ - [L]
# Send all requests not for the store to WordPress
RewriteCond %{REQUEST_URI} !^/shop/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#</IfModule>
# END WordPress
###############################################################################
# Start Ultimate SEO URLs
###############################################################################
# Handles the new URL formats
RewriteRule ^(.*)-c-([0-9_]+)/(.*)-p-([0-9]+)(.*)$ index\.php?main_page=product_info&products_id=$4&cPath=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-c-([0-9_]+)/(.*)-pi-([0-9]+)(.*)$ index\.php?main_page=popup_image&pID=$4&cPath=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-c-([0-9_]+)/(.*)-pr-([0-9]+)(.*)$ index\.php?main_page=product_reviews&products_id=$4&cPath=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-c-([0-9_]+)/(.*)-pri-([0-9]+)(.*)$ index\.php?main_page=product_reviews_info&products_id=$4&cPath=$2&%{QUERY_STRING} [L]
# Original (unchanged) URL formats
RewriteRule ^(.*)-p-([0-9]+)(.*)$ index\.php?main_page=product_info&products_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-m-([0-9]+)(.*)$ index\.php?main_page=index&manufacturers_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-pi-([0-9]+)(.*)$ index\.php?main_page=popup_image&pID=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-pr-([0-9]+)(.*)$ index\.php?main_page=product_reviews&products_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-pri-([0-9]+)(.*)$ index\.php?main_page=product_reviews_info&products_id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-ezp-([0-9]+)(.*)$ index\.php?main_page=page&id=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-c-([0-9_]+)(.*)$ index\.php?main_page=index&cPath=$2&%{QUERY_STRING} [L]
# All other pages
# Don't rewrite real files or directories
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index\.php?main_page=$1&%{QUERY_STRING} [L]
Here's a sample product page:
http://eitestsite(dot)eyeitalia(dot)...-cologne-p-105
Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
DivaVocals
Okay so I have a site which Zen Cart is in a subfolder of a WordPress site.. WordPress has it's own .htaccess file as you know...
You need to exclude Zen Cart URLs from being rewritten and sent to WordPress instead of Zen Cart. Change /shop/ to be the folder where Zen Cart is installed.
Code:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/shop/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Then place the .htaccess file for USU in the Zen Cart folder and adjust the RewriteBase (for the .htaccess file in the Zen Cart folder).
NOTE: On some servers one may need to use !^shop/ instead of !^/shop/.
Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
lhungil
You need to exclude Zen Cart URLs from being rewritten and sent to WordPress instead of Zen Cart. Change /shop/ to be the folder where Zen Cart is installed.
Code:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/shop/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Then place the .htaccess file for USU in the Zen Cart folder and adjust the RewriteBase (for the .htaccess file in the Zen Cart folder).
NOTE: On some servers one may need to use !^shop/ instead of !^/shop/.
BOOOYAH!!!!!! That did the trick!!! My very FIRST time using this module since you took over the care and feeding of it..:cool: This is LIGHTYEARS from what it was when I first looked at this add-on.. I think I'm in love!! :)
Re: Ultimate SEO 2.200+ (new features)
Not so fast.. My URLs look ODD.. NONE of them include the product or category names.
So because Numinix likes to add a modified YOUR_ADMIN/configuration.php file to ALL of it's modules, MANY of the USU configuration options DO NOT appear in the USU configuration.
I attempted to modify the USU installer to fix the issue, but I'm not sure it's solving the issue..
Here's the changes I made:
Lines 56-74:
From:
Code:
'USU_VERSION' => array('configuration_value' => '\'' . $version . '\'', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\\\'' . $version . '\\\'),'),
'SEO_ENABLED' => array('configuration_value' => 'false', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\\\'true\\\', \\\'false\\\'),'),
'SEO_URL_CPATH' => array('configuration_value' => 'auto', 'use_function' => 'usu_check_cpath_option', 'set_function' => 'zen_cfg_select_option(array(\\\'enable-auto\\\', \\\'disable\\\'),'),
'SEO_URL_END' => array('configuration_value' => '.html', 'use_function' => '', 'set_function' => ''),
'SEO_URL_FORMAT' => array('configuration_value' => 'original', 'use_function' => 'usu_check_url_format_option', 'set_function' => 'zen_cfg_select_option(array(\\\'enable-original\\\', \\\'enable-parent\\\'),'),
'SEO_URL_CATEGORY_DIR' => array('configuration_value' => 'short', 'use_function' => 'usu_check_category_dir_option', 'set_function' => 'zen_cfg_select_option(array(\\\'disable\\\', \\\'enable-short\\\', \\\'enable-full\\\'),'),
'SEO_URLS_FILTER_PCRE' => array('configuration_value' => '', 'use_function' => '', 'set_function' => ''),
'SEO_URLS_FILTER_CHARS' => array('configuration_value' => '', 'use_function' => '', 'set_function' => ''),
'SEO_URLS_REMOVE_CHARS' => array('configuration_value' => 'punctuation', 'use_function' => 'usu_check_remove_chars_option', 'set_function' => 'zen_cfg_select_option(array(\\\'enable-non-alphanumerical\\\', \\\'enable-punctuation\\\'),'),
'SEO_URLS_FILTER_SHORT_WORDS' => array('configuration_value' => '0', 'use_function' => '', 'set_function' => ''),
'SEO_URLS_ONLY_IN' => array('configuration_value' => 'index, product_info, product_music_info, document_general_info, document_product_info, product_free_shipping_info, products_new, products_all, shopping_cart, featured_products, specials, contact_us, conditions, privacy, reviews, shippinginfo, faqs_all, site_map, gv_faq, discount_coupon, page, page_2, page_3, page_4', 'use_function' => '', 'set_function' => ''),
'SEO_REWRITE_TYPE' => array('configuration_value' => 'rewrite', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\\\'rewrite\\\'),'),
'SEO_USE_REDIRECT' => array('configuration_value' => 'false', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\\\'true\\\', \\\'false\\\'),'),
'SEO_USE_CACHE_GLOBAL' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\\\'enable\\\', \\\'disable\\\'),'),
'SEO_USE_CACHE_PRODUCTS' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\\\'enable-products\\\', \\\'disable-products\\\'),'),
'SEO_USE_CACHE_CATEGORIES' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\\\'enable-categories\\\', \\\'disable-categories\\\'),'),
'SEO_USE_CACHE_MANUFACTURERS' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\\\'enable-manufacturers\\\', \\\'disable-manufacturers\\\'),'),
'SEO_USE_CACHE_EZ_PAGES' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\\\'enable-ez_pages\\\', \\\'disable-ez_pages\\\'),'),
'SEO_URLS_CACHE_RESET' => array('configuration_value' => 'false', 'use_function' => 'usu_reset_cache_data', 'set_function' => 'zen_cfg_select_option(array(\\\'true\\\', \\\'false\\\'),'),
To:
Code:
'USU_VERSION' => array('configuration_value' => '\'' . $version . '\'', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\'' . $version . '\'),'),
'SEO_ENABLED' => array('configuration_value' => 'false', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\'true\', \'false\'),'),
'SEO_URL_CPATH' => array('configuration_value' => 'auto', 'use_function' => 'usu_check_cpath_option', 'set_function' => 'zen_cfg_select_option(array(\'enable-auto\', \'disable\'),'),
'SEO_URL_END' => array('configuration_value' => '.html', 'use_function' => '', 'set_function' => ''),
'SEO_URL_FORMAT' => array('configuration_value' => 'original', 'use_function' => 'usu_check_url_format_option', 'set_function' => 'zen_cfg_select_option(array(\'enable-original\', \'enable-parent\'),'),
'SEO_URL_CATEGORY_DIR' => array('configuration_value' => 'short', 'use_function' => 'usu_check_category_dir_option', 'set_function' => 'zen_cfg_select_option(array(\'disable\', \'enable-short\', \'enable-full\'),'),
'SEO_URLS_FILTER_PCRE' => array('configuration_value' => '', 'use_function' => '', 'set_function' => ''),
'SEO_URLS_FILTER_CHARS' => array('configuration_value' => '', 'use_function' => '', 'set_function' => ''),
'SEO_URLS_REMOVE_CHARS' => array('configuration_value' => 'punctuation', 'use_function' => 'usu_check_remove_chars_option', 'set_function' => 'zen_cfg_select_option(array(\'enable-non-alphanumerical\', \'enable-punctuation\'),'),
'SEO_URLS_FILTER_SHORT_WORDS' => array('configuration_value' => '0', 'use_function' => '', 'set_function' => ''),
'SEO_URLS_ONLY_IN' => array('configuration_value' => 'index, product_info, product_music_info, document_general_info, document_product_info, product_free_shipping_info, products_new, products_all, shopping_cart, featured_products, specials, contact_us, conditions, privacy, reviews, shippinginfo, faqs_all, site_map, gv_faq, discount_coupon, page, page_2, page_3, page_4', 'use_function' => '', 'set_function' => ''),
'SEO_REWRITE_TYPE' => array('configuration_value' => 'rewrite', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\'rewrite\'),'),
'SEO_USE_REDIRECT' => array('configuration_value' => 'false', 'use_function' => '', 'set_function' => 'zen_cfg_select_option(array(\'true\', \'false\'),'),
'SEO_USE_CACHE_GLOBAL' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\'enable\', \'disable\'),'),
'SEO_USE_CACHE_PRODUCTS' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\'enable-products\', \'disable-products\'),'),
'SEO_USE_CACHE_CATEGORIES' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\'enable-categories\', \'disable-categories\'),'),
'SEO_USE_CACHE_MANUFACTURERS' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\'enable-manufacturers\', \'disable-manufacturers\'),'),
'SEO_USE_CACHE_EZ_PAGES' => array('configuration_value' => 'true', 'use_function' => 'usu_check_cache_options', 'set_function' => 'zen_cfg_select_option(array(\'enable-ez_pages\', \'disable-ez_pages\'),'),
'SEO_URLS_CACHE_RESET' => array('configuration_value' => 'false', 'use_function' => 'usu_reset_cache_data', 'set_function' => 'zen_cfg_select_option(array(\'true\', \'false\'),'),
Line 196
From:
Code:
'set_function' => 'zen_cfg_select_option(array(\\\'' . $version . '\\\'),'
To:
Code:
'set_function' => 'zen_cfg_select_option(array(\'' . $version . '\'),'
Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
lhungil
Not in my test environments (PHP 5.3, 5.4.12 - I did have some other unrelated issues with 5.4 less than 5.4.12, 5.5)
This appears to be something other people are randomly encountering as well under PHP 5.4 (not specific to this module). You may want to drop down to PHP 5.3 at this time. The code you referenced is used in both the stock Zen Cart and this module. I know the Zen Cart team is
actively looking into a solution.
So I am getting a memory exhausted issue in PHP 5.4 with this module.
Code:
[31-Jan-2014 12:21:36 America/Denver] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2547580697 bytes) in /home4/mysite/public_html/shop/includes/classes/seo.url.php on line 201
The login pages goes blank after all the user name password stuff. In the log folder, I can find the above error log. Not sure what to do to resolve..
Re: Ultimate SEO 2.200+ (new features)
Quote:
Originally Posted by
DivaVocals
... So because Numinix likes to add a modified YOUR_ADMIN/configuration.php file to ALL of it's modules, MANY of the USU configuration options DO NOT appear in the USU configuration. ...
Yup, the modifications Numinix makes to the admin configuration.php file do not play well with 2.212.
Quote:
Originally Posted by
DivaVocals
So I am getting a memory exhausted issue in PHP 5.4 with this module.
Not directly related to this module (the code block is identical to the one used by the internal Zen Cart code).