stl314 Posted November 25, 2016 Share Posted November 25, 2016 There are links out there on the web that link to my old store (I was using a hosted store and had my domain name attached to it) Now that I have moved to cube cart and hosting my own store, when people click on those links they are coming to a page that is within my template that says: 404 - Page Not Found Sorry but the page you are looking for could not be found. Why is this not redirecting to my home page? Quote Link to comment Share on other sites More sharing options...
Dirty Butter Posted November 25, 2016 Share Posted November 25, 2016 Could you give an example of a url that 404's and what the url for your CC page should be? Also, what is in your .htaccess file now? There IS a 404 page coded in the Foundation template files. You are free to re-word it to suit yourself. It should show all the page structure found in main.php except for the Latest Products and possibly some plugin additions, plus your 404 wording. Quote Link to comment Share on other sites More sharing options...
stl314 Posted November 25, 2016 Author Share Posted November 25, 2016 This page is a link that is constantly being used lately, but it is from my old store. When you click it, you will see that it just leads to a page saying page not found. I just want 404's to redirect to the home page http://www.shirtactivism.com/index.aspx?pageid=1855718&%3Bprodid=9134693 Here is what is in my htaccess file ##### START CubeCart .htaccess ##### ### File Security ### <FilesMatch "\.(htaccess)$"> Order Allow,Deny Deny from all </FilesMatch> ### Apache directory listing rules ### DirectoryIndex index.php index.htm index.html IndexIgnore * ### Rewrite rules for SEO functionality ### <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / ##### START v4 SEO URL BACKWARD COMPATIBILITY ##### RewriteCond %{QUERY_STRING} (.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule cat_([0-9]+)(\.[a-z]{3,4})?(.*)$ index.php?_a=category&cat_id=$1&%1 [NC] RewriteCond %{QUERY_STRING} (.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule prod_([0-9]+)(\.[a-z]{3,4})?$ index.php?_a=product&product_id=$1&%1 [NC] RewriteCond %{QUERY_STRING} (.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule info_([0-9]+)(\.[a-z]{3,4})?$ index.php?_a=document&doc_id=$1&%1 [NC] RewriteCond %{QUERY_STRING} (.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule tell_([0-9]+)(\.[a-z]{3,4})?$ index.php?_a=product&product_id=$1&%1 [NC] RewriteCond %{QUERY_STRING} (.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule _saleItems(\.[a-z]+)?(\?.*)?$ index.php?_a=saleitems&%1 [NC,L] ##### END v4 SEO URL BACKWARD COMPATIBILITY ##### RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.*)\.html?$ index.php?seo_path=$1 [L,QSA] </IfModule> ### Default store 404 page ### ErrorDocument 404 /index.php ## Override default 404 error document for missing page resources ## <FilesMatch "\.(gif|jpe?g|png|ico|css|js|svg)$"> ErrorDocument 404 "<html></html> </FilesMatch> ##### END CubeCart .htaccess ##### Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 25, 2016 Share Posted November 25, 2016 There are two aspects to look into: .htaccess file: If the Rewrite Parser fails to match on the URL and rewrite it, then the web server will send the designated 404 page, which, if specified in .htaccess, is CubeCart's index.php. CubeCart 1: However, because the web server has also set the HTTP Response Status to 404, the code in CubeCart can (and does) test for this. If 404, CubeCart assembles the standard storefront page and uses the 404 template for the main contents. CubeCart 2: If the Rewrite Parser does match and the URL is rewritten, but the resultant SEO Path is not found in the database, then, CubeCart also displays the "404" contents. At one time, I recall seeing an admin setting to show the 404 content or not. I'm not finding it now. In your example above, the actual document being requested is index.aspx. That (probably) definitely does not exist. Quote Link to comment Share on other sites More sharing options...
stl314 Posted November 25, 2016 Author Share Posted November 25, 2016 So how do I fix it? Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 25, 2016 Share Posted November 25, 2016 Let's try this promising solution. Edit the content.404.php template to say something more friendly, like: "Welcome to my store! The link you used to find us is no longer valid. We invite you to browse the many quality products we have to offer. Click this <link> to view our Latest Products." Or, with a small code edit, we can immediately bounce to the Latest Products, a certain Site Document, etc. Or, we can try something new. What would you like to happen? Quote Link to comment Share on other sites More sharing options...
Dirty Butter Posted November 25, 2016 Share Posted November 25, 2016 Bsmither's suggestion to immediately bounce to the Latest Products sounds to me like what you want. BUT Is there no predictable pattern to your old urls? So there's not going to be any way to use Rewrite to 301 from old urls to the new CC url format? Quote Link to comment Share on other sites More sharing options...
stl314 Posted November 26, 2016 Author Share Posted November 26, 2016 Yes, I would like it to bounce immediately to my homepage Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 26, 2016 Share Posted November 26, 2016 Please try this: In the file /classes/cubecart.class.php, line 59-61: From: if (isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] >= 400) { $_GET['_a'] = '404'; } To: if (isset($_SERVER['REDIRECT_STATUS']) && $_SERVER['REDIRECT_STATUS'] >= 400) { http_response_code(301);header("Location: ".CC_STORE_URL);exit; $_GET['_a'] = '404'; } This now sets the response code to 301 (Permanent New URL, the browser should remember this and search engines will correct their indexes), then tells the browser to fetch the main page of your store. We can also do something similar in .htaccess but by having CubeCart do it, we maintain the ability to use a hook to log the bad URLs for eventual attempts at locating the source. Quote Link to comment Share on other sites More sharing options...
stl314 Posted November 27, 2016 Author Share Posted November 27, 2016 That worked perfectly! Quote Link to comment Share on other sites More sharing options...
foz1234 Posted November 27, 2016 Share Posted November 27, 2016 please remove incorrect post 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.