BenjaminB Posted May 11, 2005 Share Posted May 11, 2005 Okay i solved my problem. The cause was the Master Products contrib. Some sql queries in the index.php and advanced_search_results.php didnt requested the prducts_master and products_master_status from aboive mentioned contrib. The product_info.php had a routine which to set all get params, which set the buy_now action. This routine asked for the master and master_status. Because the queries on the other page didnt requested this db columns, this routine failed and didnt provide the products_id to the tep_href_link, which then itself failed and returned an "old-style" link without a products id. I added the columns to the queries and everything works fine now. Now onto my other "problem", how do i modify the tep_href_link, that it always (if not empty) shows the manufacturer in the link like this /manufacturer-product-p-10.html for every product? Thx in advance, regards Benjamin Quote Link to comment Share on other sites More sharing options...
BenjaminB Posted May 11, 2005 Share Posted May 11, 2005 So i got it working, i hope i used the right approach. Here is my code: I only altered html_output.php: Line 96, from: $rewrite_page_product = short_name(constant('PRODUCT_NAME_'.$p2[1])) . '-p-' . $p2[1] . '.html'; to: // Addition to write the manufacturers name into the static link too $manufac_query = tep_db_query("SELECT " . TABLE_MANUFACTURERS . ".manufacturers_name FROM " . TABLE_MANUFACTURERS . " INNER JOIN " . TABLE_PRODUCTS . " ON " . TABLE_MANUFACTURERS . ".manufacturers_id = " . TABLE_PRODUCTS . ".manufacturers_id WHERE " . TABLE_PRODUCTS . ".products_id = " . $p2[1]); $manufac_name = ""; while ($manufac = tep_db_fetch_array($manufac_query)) { $manufac_name = $manufac['manufacturers_name']; } if ($manufac_name != '') { $rewrite_page_product = short_name($manufac_name) . "-" . short_name(constant('PRODUCT_NAME_'.$p2[1])) . '-p-' . $p2[1] . '.html'; } else { $rewrite_page_product = short_name(constant('PRODUCT_NAME_'.$p2[1])) . '-p-' . $p2[1] . '.html'; } I also did some changes to the short_name function, to replace some umlauts, but this is just for the german speaking people. I just added these lines directly after the function declaration: $str = str_replace("?", "ae", $str); $str = str_replace("?", "oe", $str); $str = str_replace("?", "ue", $str); $str = str_replace(" ", "-", $str); Im just writing this because i think i read someones post asking about this. Quote Link to comment Share on other sites More sharing options...
Sethman Posted May 11, 2005 Share Posted May 11, 2005 Only thing I can see wrong here is you are missing 1 line - Options +FollowSymLinks RewriteEngine On # Change "folder" to your catalog directory name RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} Add Options +FollowSymLinks <{POST_SNAPBACK}> Thanks NHRA, but that was not in the install instructions? Is that in an upgrade version or something? I downloaded v1.4, but I seem to recall that I was supposed to install this version and then upgrade... do I remember right? Also, what was that other line for? Thanks Quote Link to comment Share on other sites More sharing options...
Sethman Posted May 11, 2005 Share Posted May 11, 2005 Also, I just added what you said and I got a 500 error - Internal Server Error. I had to change the code back to get my site to work again? Quote Link to comment Share on other sites More sharing options...
NHRAFan Posted May 11, 2005 Share Posted May 11, 2005 It isn't the {QUERY_STRING} but probably some other setup consideration. I have seen servers where you need to add: Options +FollowSymLinks above the RewriteEngine On directive whereas others don't. Also, the htaccess file should a blank line (line feed) at the end of the file. Do you happen to have different folders for SSL / NONSSL? You shouldn't need to manually clear the cache as it auto-expires or is replaced with current data when you make a change to a product or category. There are only a few situations where it would need to be manually reset...and in that case you can just set that switch to true and update the setting. Bobby <{POST_SNAPBACK}> From the Apache support site: FollowSymLinks and SymLinksIfOwnerMatch Wherever in your URL-space you do not have an Options FollowSymLinks, or you do have an Options SymLinksIfOwnerMatch Apache will have to issue extra system calls to check up on symlinks. One extra call per filename component. For example, if you had: DocumentRoot /www/htdocs <Directory /> Options SymLinksIfOwnerMatch </Directory> and a request is made for the URI /index.html. Then Apache will perform lstat(2) on /www, /www/htdocs, and /www/htdocs/index.html. The results of these lstats are never cached, so they will occur on every single request. If you really desire the symlinks security checking you can do something like this: DocumentRoot /www/htdocs <Directory /> Options FollowSymLinks </Directory> <Directory /www/htdocs> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory> This at least avoids the extra checks for the DocumentRoot path. Note that you'll need to add similar sections if you have any Alias or RewriteRule paths outside of your document root. For highest performance, and no symlink protection, set FollowSymLinks everywhere, and never set SymLinksIfOwnerMatch. Quote Link to comment Share on other sites More sharing options...
NHRAFan Posted May 11, 2005 Share Posted May 11, 2005 Thanks NHRA, but that was not in the install instructions? Is that in an upgrade version or something? I downloaded v1.4, but I seem to recall that I was supposed to install this version and then upgrade... do I remember right? Also, what was that other line for? Thanks <{POST_SNAPBACK}> If you are starting fresh with no older SEO URLs installed, you should start with v2.0, don't bother with v1.4. Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 I just posted last night, Any ideas why I get 500 Interal Errors? Options +FollowSymLinks RewriteEngine On # Change "folder" to your catalog directory na RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING RewriteRule ^(.*)-c-(.*).html$ index.php?cPath RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 Server setup? Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 Server setup? <{POST_SNAPBACK}> Server OS: Linux 2.4.29-grsec+w+fhs6b+gr0501+nfs+a32+++p4+sata+c4+gr2b-v6.189 Database: MySQL 4.0.24-log Server Date: 05/11/2005 10:54:07 Datebase Date: 05/11/2005 10:54:07 HTTP Server: Apache/1.3.31 (Unix) DAV/1.0.3 mod_gzip/1.3.26.1a PHP/4.3.10 mod_ssl/2.8.19 OpenSSL/0.9.6c PHP Version: 4.3.10 (Zend: 1.3.0) Is that enough information? I can get you what ever you need. Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 Server OS: Linux 2.4.29-grsec+w+fhs6b+gr0501+nfs+a32+++p4+sata+c4+gr2b-v6.189 Database: MySQL 4.0.24-log Server Date: 05/11/2005 10:54:07 Datebase Date: 05/11/2005 10:54:07 HTTP Server: Apache/1.3.31 (Unix) DAV/1.0.3 mod_gzip/1.3.26.1a PHP/4.3.10 mod_ssl/2.8.19 OpenSSL/0.9.6c PHP Version: 4.3.10 (Zend: 1.3.0) Is that enough information? I can get you what ever you need. <{POST_SNAPBACK}> Also my site does use SSL for certain parts, like the check out. Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 Send me a copy of your Apache httpd.conf and php.ini file. Do not post it. Send it via email. The files will be rather large so don't clutter the thread. Bobby Quote Link to comment Share on other sites More sharing options...
NHRAFan Posted May 11, 2005 Share Posted May 11, 2005 I just posted last night, Any ideas why I get 500 Interal Errors? Options +FollowSymLinks RewriteEngine On # Change "folder" to your catalog directory na RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING RewriteRule ^(.*)-c-(.*).html$ index.php?cPath RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} <{POST_SNAPBACK}> It that EXACTLY what you have in your htaccess file?? If it is, then you need to fix it. It should look like this: Options +FollowSymLinks RewriteEngine On # Change "folder" to your catalog directory name RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 It that EXACTLY what you have in your htaccess file?? If it is, then you need to fix it. It should look like this: Options +FollowSymLinks RewriteEngine On # Change "folder" to your catalog directory name RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} <{POST_SNAPBACK}> This is what is in my file. Options +FollowSymLinks RewriteEngine On # Change "folder" to your catalog directory name RewriteBase /catalog/ RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING} RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING} RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING} Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 (edited) Send me a copy of your Apache httpd.conf and php.ini file.? Do not post it.? Send it via email.? The files will be rather large so don't clutter the thread. Bobby <{POST_SNAPBACK}> I am not sure if i mentioned this to you, but i am using a host. Dreamhost. I am not sure how to go about and get that info for you. Edited May 11, 2005 by pura vida Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 I am not sure if i mentioned this to you, but i am using a host. Dreamhost. I am not sure how to go about and get that info for you. <{POST_SNAPBACK}> Call your server administrator and tell him to fix it...the problem is most likely due to restrictive configuration values in the Apache httpd.conf file. There is no way around it. Your server admin will either fix it or the contribution won't work on that server. Bobby Quote Link to comment Share on other sites More sharing options...
Sethman Posted May 11, 2005 Share Posted May 11, 2005 If you are starting fresh with no older SEO URLs installed, you should start with v2.0, don't bother with v1.4. <{POST_SNAPBACK}> This is what is written on the contrib page: RELEASE NOTES: If you have less than version 1.4 installed you are encouraged to upgrade FRIST to 1.4 then to version 2.0 I guess I just read that to mean that I should install v1.4 and then upgrade to v2.0, but now that I read it again, I guess that was only meant for those who already had it installed with an older version. Oops :P Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 Call your server administrator and tell him to fix it...the problem is most likely due to restrictive configuration values in the Apache httpd.conf file. There is no way around it. Your server admin will either fix it or the contribution won't work on that server. Bobby <{POST_SNAPBACK}> I will do so. Have you ever used Mambo. That has a SEO contribution that requires us to change the .htaccess, and that seems to work. Strange. Quote Link to comment Share on other sites More sharing options...
Sethman Posted May 11, 2005 Share Posted May 11, 2005 Hi, I had v1.4 and went to upgrade I uploaded all the new files and then went to call /install-seo.php page and got the following error: Fatal error: Call to a member function on a non-object in /catalog/includes/seo_cache.php on line 47 Anybody know what happened? Here is the code on line 47 for seo_cache.php $cache->is_cached($cache_file . 'products', $is_cached, $is_expired); Please help Quote Link to comment Share on other sites More sharing options...
Guest Posted May 11, 2005 Share Posted May 11, 2005 You forgot to initialize the class above the call... Bobby Quote Link to comment Share on other sites More sharing options...
Sethman Posted May 11, 2005 Share Posted May 11, 2005 You forgot to initialize the class above the call... Bobby <{POST_SNAPBACK}> what do you mean? (php dummy here, LOL) Quote Link to comment Share on other sites More sharing options...
Sethman Posted May 11, 2005 Share Posted May 11, 2005 Here is My Store if needed Quote Link to comment Share on other sites More sharing options...
Shams Posted May 12, 2005 Share Posted May 12, 2005 Use this sitemap => Sitemap MS2.2 and then overwrite the base class with the one provided by Chris dated 11 Mar 2005. Bobby <{POST_SNAPBACK}> Thank you Chemo. It worked out perfectly. I installed the sitemap contrib you recommended and then worked my way through your ultimate seo url. It was much easier than I thought (at least for a noob like me :D ) Great contrib Chemo :thumbsup: Shams Quote Link to comment Share on other sites More sharing options...
Guest Posted May 12, 2005 Share Posted May 12, 2005 Thank you Chemo. It worked out perfectly.I installed the sitemap contrib you recommended and then worked my way through your ultimate seo url. It was much easier than I thought (at least for a noob like me :D ) Great contrib Chemo :thumbsup: Shams <{POST_SNAPBACK}> Thank you! Now that you got the hard part of the way please remember that if a small issue comes up that is unseen now search the thread! Most small issues that are server quirks have been covered. I'm working on the next version (v3.X) and need the time to dedicate to development...so I'm actively staying off the thread UNLESS it's an issue that has not already been solved or one that I could provide a different answer for. Know where I'm coming from? Congrats and enjoy! Bobby Quote Link to comment Share on other sites More sharing options...
Guest Posted May 12, 2005 Share Posted May 12, 2005 Chemo, Regarding the .htaccess issue and my host. I have requested the two files today and hopefully they will help. They have already said that they will not help me with the .htaccess code you have supplied. So, for now it looks like I am SOL. But, I have an idea and perhaps.. just perhaps you may be able to see something that I can not. I used a solution for Mambo Content System that performed almost the same thing. They have a SEF URL module as well that requires the change in URLs. They had me change the .htaccess, RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) index.php and this appread to work without getting those errors we talked about. Is this information of any use? Can this help? Quote Link to comment Share on other sites More sharing options...
taosan Posted May 12, 2005 Share Posted May 12, 2005 I (re)installed the contri twice and I still get the 404 errors by selecting Rewrite in my admin while Cname works fine. But I noticed that using Rewrite I get this url: zingendpratend-fotoframe-p-146.html?osCsid=8fb7d772f32cbb1a99b12c369ee3b4cc Why is the osCsid still there? It should be like this: zingendpratend-fotoframe-p-146.html PLEASE can someone help me or point me to a direction ??? :'( Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.