简体   繁体   中英

.htaccess 301 http:// redirect to https:// not being indexed by Google

We recently moved 2 websites to full SSL as we know Google ranks better for secure websites. But it's been over two months and our website is not getting indexed as SSL.

For example;

Within a week of putting ssl on our Joomla site all our urls have changed in Google as https:// which is what we want - this is because we set up a 301 redirect in the Joomla htaccess.

But on our Opencart website which has a differently configured htaccess file it's still displaying only non SSL results on Google. The SSL is working properly on our website and has been crawled dozens of time since by Google but for some reason Google won't index us as a https website.

I am thinking that there's not a proper 301 redirect set up in our htaccess. I have attached it below:

#gzip starts
<ifModule mod_deflate.c>
<filesMatch "\.(js|css|txt|woff)$">
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>

#cache starts
<FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf|woff|txt)$">
<IfModule mod_expires.c>
ExpiresActive on

ExpiresDefault "access plus 14 days"
</IfModule>
Header unset ETag
FileETag None
</FilesMatch>

#domain rewrite starts
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.gomobility.ie/$1 [R=301,L]


# 1.To use URL Alias you need to be running apache with mod_rewrite enabled. 

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing 
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
 Order deny,allow
 Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ 

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers 
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

Any help would really be appreciated.

Your canonical links are still not ssl. OpenCart generates canonical links (view your source). These links are generated through OpenCart and won't be affected by your htaccess.

There are a couple ways to change this. First you could find each instance where you call the link function and add SSL as the 3rd argument.

Replace this:

$this->url->link('example/path');

With this:

$this->url->link('example/path', '', 'SSL');

Or you could change the link funciton to handle all links as SSL links by default. Go to system/library/url.php and change this line.

public function link($route, $args = '', $connection = 'NONSSL') {

To this:

public function link($route, $args = '', $connection = 'SSL') {

您的规范标签是http版本,我会将其更改为https以避免发送冲突的信号。

Just two points which you may of course know. First, make sure your sitemap is indexing https and not http. Second, you have to set up a new website in Google webmaster with the new https website address - do not delete the old one. You will then see the new site being indexed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM