我正在使用OpenCart 1.5.6,最近我将商店从子域名移到了主域名。现在我正在尝试将一些旧的静态类别页面重定向到实际的opencart类别/产品页面。
这是我的.htaccess行:
Redirect 301 /old-category.html http://www.mydomain.com/my-new-category
此规则适用于我的大多数网址,但有些网站需要我这样做:
http://www.mydomain.com/my-new-category?route=old-category.html
有些人建议使用RewriteRule或者最后添加一个问号,我确实尝试了所有这些,但没有任何作用!
我也尝试在下面的块之前和之后设置我的规则:
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]
任何人都有任何想法?
答案 0 :(得分:1)
这应该有效:
RewriteEngine On
RewriteRule ^old-category\.html$ http://www.mydomain.com/my-new-category [L,NC,R=301]
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]
请务必在新浏览器中对此进行测试,以避免301缓存问题。
答案 1 :(得分:0)
我希望它对您有用
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]
Redirect 301 /old-category.html http://www.example.com/my-new-category?
答案 2 :(得分:-1)
我的旧网站上的大多数类别/产品页面都有301重定向问题。
例如,我从旧页面进行了301重定向
/shop/dekorativnye-plenki/ category/29-derevo?route= product/category&path=25_29
到新页面
/dekorativnye-plenki/derevo
但是服务器会将我重定向到不存在的页面
/dekorativnye-plenki/derevo?_ route_=shop%2Fdekorativnye- plenki%2Fcategory%2F29-derevo