astoller Posted November 12, 2018 Share Posted November 12, 2018 I havehttps://www.example.com/123.html?language=enhttps://www.example.com/123.html for all the products in my site Can you give me an htaccess code to send all of the parameter strings with "?language-english" to the basic url without parameters? Thanks Art Link to comment Share on other sites More sharing options...
♥JcMagpie Posted November 12, 2018 Share Posted November 12, 2018 Note I have not tested this!! but have a look at this https://stackoverflow.com/questions/16378326/remove-directory-after-main-url-using-htaccess Link to comment Share on other sites More sharing options...
♥JcMagpie Posted November 12, 2018 Share Posted November 12, 2018 or if you are up for testing 😊 try somthing like this RewriteEngine on RewriteCond %{HTTP_HOST} ^yourste.com/en [NC,OR] RewriteCond %{HTTP_HOST} ^www.yourste.com/en [NC] RewriteRule ^(.*)$ http://www.yourste.com/$1 [L,R=301,NC] Link to comment Share on other sites More sharing options...
♥JcMagpie Posted November 12, 2018 Share Posted November 12, 2018 .htaccess can be tricky so it's best to keep a list of useful redirects #301 Redirects for .htaccess #Redirect a single page: Redirect 301 /pagename.php http://www.domain.com/pagename.html #Redirect an entire site: Redirect 301 / http://www.domain.com/ #Redirect an entire site to a sub folder Redirect 301 / http://www.domain.com/subfolder/ #Redirect a sub folder to another site Redirect 301 /subfolder http://www.domain.com/ #This will redirect any file with the .html extension to use the same filename but use the .php extension instead. RedirectMatch 301 (.*)\.html$ http://www.domain.com$1.php ## #You can also perform 301 redirects using rewriting via .htaccess. ## #Redirect from old domain to new domain RewriteEngine on RewriteBase / RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] #Redirect to www location RewriteEngine on RewriteBase / rewritecond %{http_host} ^domain.com [nc] rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] #Redirect to www location with subdirectory RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} domain.com [NC] RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC] #Redirect from old domain to new domain with full path and query string: Options +FollowSymLinks RewriteEngine On RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC] #Redirect from old domain with subdirectory to new domain w/o subdirectory including full path and query string: Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$ RewriteRule ^(.*) http://www.katcode.com/%1 [R=302,NC] Rewrite and redirect URLs with query parameters (files placed in root directory) Original URL: http://www.example.com/index.php?id=1 Desired destination URL: http://www.example.com/path-to-new-location/ .htaccess syntax: RewriteEngine on RewriteCond %{QUERY_STRING} id=1 RewriteRule ^index\.php$ /path-to-new-location/? [L,R=301] Redirect URLs with query parameters (files placed in subdirectory) Original URL: http://www.example.com/sub-dir/index.php?id=1 Desired destination URL: http://www.example.com/path-to-new-location/ .htaccess syntax: RewriteEngine on RewriteCond %{QUERY_STRING} id=1 RewriteRule ^sub-dir/index\.php$ /path-to-new-location/? [L,R=301] Redirect one clean URL to a new clean URL Original URL: http://www.example.com/old-page/ Desired destination URL: http://www.example.com/new-page/ .htaccess syntax: RewriteEngine On RewriteRule ^old-page/?$ $1/new-page$2 [R=301,L] Rewrite and redirect URLs with query parameter to directory based structure, retaining query string in URL root level Original URL: http://www.example.com/index.php?id=100 Desired destination URL: http://www.example.com/100/ .htaccess syntax: RewriteEngine On RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA] Rewrite URLs with query parameter to directory based structure, retaining query string parameter in URL subdirectory Original URL: http://www.example.com/index.php?category=fish Desired destination URL: http://www.example.com/category/fish/ .htaccess syntax: RewriteEngine On RewriteRule ^/?category/([^/d]+)/?$ index.php?category=$1 [L,QSA] Domain change – redirect all incoming request from old to new domain (retain path) RewriteEngine on RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC] RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L] If you do not want to pass the path in the request to the new domain, change the last row to: RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L] #From blog.oldsite.com -> www.somewhere.com/blog/ retains path and query, and eliminates xtra blog path if domain is blog.oldsite.com/blog/ Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_URI}/ blog RewriteRule ^(.*) http://www.somewhere.com/%{REQUEST_URI} [R=302,NC] RewriteRule ^(.*) http://www.somewhere.com/blog/%{REQUEST_URI} [R=302,NC] Link to comment Share on other sites More sharing options...
ArtcoInc Posted November 12, 2018 Share Posted November 12, 2018 @astoller Do you want to ADD the "?language=en", or REMOVE it? M Link to comment Share on other sites More sharing options...
astoller Posted November 13, 2018 Author Share Posted November 13, 2018 Artcolnc : i want to remove it JC Magpie :thanks fro this library Link to comment Share on other sites More sharing options...
MrPhil Posted November 13, 2018 Share Posted November 13, 2018 You want to remove it from links being produced by your store, or from incoming URLs? I think that it comes from someone using the "select language" feature in osC. Is some search engine indexing this Query String, and it's overriding your (non-English) users' choice? Removing language= on incoming URLs could result in disabling the ability to choose a language (if you have multiple languages enabled), so be careful about doing that. Perhaps there is a way to persuade search engines not to index with that language= Query String? I'm not sure how to do that on the osC side of things. Maybe language selection could be disabled for certain User Agents? Link to comment Share on other sites More sharing options...
astoller Posted November 14, 2018 Author Share Posted November 14, 2018 The string (1) looks like this example.com/123.html?lang=en This is in google's index along with the stripped down url string (2) example.com/123.html Both in the index cause a duplication problem.( 700 times over for every prodcut) I can have htaccess redirect (1 )to (2) Would that affect the functiuonality of oscommerce? Link to comment Share on other sites More sharing options...
Guest Posted November 15, 2018 Share Posted November 15, 2018 Use a 302 redirect for testing, change it to 301 when you know it's working the way you want. Link to comment Share on other sites More sharing options...
MrPhil Posted November 15, 2018 Share Posted November 15, 2018 Take a look at https://stackoverflow.com/questions/11539981/htaccess-301-redirect-rule-to-remove-part-of-a-query-string-from-urls-but-leave, before it does any SEO stuff like rewriting to dynamic URL format. It tells how to remove a single term=value entry from your URL Query String (which could end up being the entire thing, including the "?"). Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.