Magento多语言重写SEO修复?

时间:2013-09-23 11:53:45

标签: php .htaccess magento redirect mod-rewrite

2年前我用一种语言用Magento制作了一个网站,现在我想添加另一种语言。 我的实际结构就像那样

  • example.com/category /
  • example.com/about.html
  • example.com/product.html

我希望获得这样的结构:

  • example.com/lang1/category /
  • example.com/lang1/about.html
  • example.com/lang1/product.html
  • example.com/lang2/category /
  • example.com/lang2/about.html
  • example.com/lang2/product.html

这不是什么大问题,因为Magento允许我这样做只需登录后端 - >系统 - >配置 - >网络 - >将商店代码添加到Urls(是)

我现在无法进行此设置,因为在此之前我需要修复并重写从第一个结构到新结构。

  • example.com/everything_without_the_/lang1/_path to permanent
  • example.com/lang1/everything

我需要举例来说,来自社交网站和其他网站的帖子的反向链接的网址不会出现404错误,但会自动重定向,并重定向到新结构中的等效网页。

所以我想用自然语言添加这样的脚本:

rewrite permanently all the urls which ends not with /lang1/ or /lang2/ to urls with the prefix /lang1/

我知道我可以在Magento后端手动添加使用此模式的重写规则,但我更愿意知道是否可以直接从数据库或.htaccess或index.php及更高版本中的某些脚本批量处理这些解决方案中的哪一个对SEO和SERP的负面影响较小。


我找到了解决方案

您好我找到了解决方案:

    RewriteCond %{HTTP_HOST} ^(.)?example.com$ [NC] 
    RewriteCond %{REQUEST_URI} !^/it/
    RewriteCond %{REQUEST_URI} !^/en/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /it/$1  [R=301,L]
    RewriteCond %{HTTP_HOST} ^(.)?example.com$ [NC]
    RewriteRule ^(/)?$ it/index.php [L]

初看起来有效,但我不保证。 我希望这个能帮上忙 干杯

3 个答案:

答案 0 :(得分:1)

试试这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/lang1/
RewriteCond %{REQUEST_URI} !(.*)/lang2/
RewriteRule ^(.*)$ http://www.domain.com/$1/lang1/ [R=301,L]

答案 1 :(得分:0)

您可以使用.htaccess 301网址尽可能使用自己的regex function

因为您需要一些与语言部分有关的特定要求

这里我给你分类示例

使用新的父网址重定向子类别网址

示例:

category/sub1 redirect to cat/sub1
category/sub2 redirect to cat/sub2
category/sub3 redirect to cat/sub3

如果您更改了父类别网址,或者您想要完全删除父网址,则可能需要这样做:

RewriteRule ^category/(.*) http://www.yourwebsite.com/cat/$1 [R=301, L]

或者从'/category/'完全删除yourwebsite.com/category/sub并以yourwebsite.com/sub结尾('sub'可以是任何网址):

RewriteRule ^ category /(.*) http://www.yourwebsite.com/ $ 1 / [R = 301,L]

你也可以参考

http://www.learnmagento.org/magento-tutorials/301-redirects-in-magento/

http://blog.maximusbusiness.com/2012/10/magento-url-rewriting-regex-and-301-redirects-tips/

希望这对您有所帮助。

答案 2 :(得分:0)

我找到了解决方案

您好我找到了解决方案:

RewriteCond %{HTTP_HOST} ^(.)?example.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/it/
RewriteCond %{REQUEST_URI} !^/en/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /it/$1  [R=301,L]
RewriteCond %{HTTP_HOST} ^(.)?example.com$ [NC]
RewriteRule ^(/)?$ it/index.php [L]

初看起来有效,但我不保证。我希望这会有助于干杯