从旧的http到https的产品名称和规范网址的工作seo网址仍然是http而不是https

时间:2014-10-22 13:44:09

标签: apache .htaccess mod-rewrite redirect seo

我在将Opencart中的seo友好URL从旧的http应用到新的https时遇到了问题。

在我们过去拥有像domain.com/productname这样的优秀网址之前,但上个月我们为我们的网站购买了ssl证书,现在所有网址都在其https版本上,因此这些产品页面已更改其格式,例如{ {3}}如果点击链接,它现在就像opencart中的http://domain.com/productname一样凌乱。

我只想删除这个index.php? route = url参数,以便所有链接都成为domain.com/productname。我也尝试过GWT来获取它不是重定向URL。我也检查了标题状态是200。

规范网址仍处于 http 而不是 https ,某些产品链接仍然指向 http ,而不是 https

到目前为止,我对页面没有任何问题,例如关于我们的联系 - 我们工作得很好。

以下是我的.htaccess:

RewriteEngine On
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] 

#This setting force logo url to it's home page
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteRule ^index\.php$ https://www.domain.com/? [R=301,L]

#This setting force http to https version
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]

2 个答案:

答案 0 :(得分:1)

您需要在路由规则之前保留重定向规则:

RewriteEngine On
RewriteBase /

#This setting force logo url to it's home page
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteRule ^index\.php$ https://www.domain.com/? [R=301,L,NE,NC]

#This setting force http to https version
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L,NE]

#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]

还要确保在新的浏览器中测试它以避免旧的浏览器缓存。

答案 1 :(得分:0)

另一个解决方案是让你网站的ssl部分也允许覆盖

cd / etc / apache2 / sites-available

nano yourdomain.com.conf

添加以下代码

    <Directory "/var/www/html/yourdomain.com/public_html">
       AllowOverride All
       Require all granted
   </Directory>

<VirtualHost *:443>
.....

</VirtualHost>