htaccess将子域重定向到域magento存储




在Magento-site.com上有一家商店。子域上也有商店视图,如sub1site.com、sub2site.com、Sub3Site.com。一切都很好,但逐位设置的主题在子域上不起作用。主题使用Mage::getUrl((生成AJAX快速查看和添加到购物车的URL。它使用商店的基本URL
从主网站site.com一切正常,预览AJAX工作。在子域上不起作用,因为形成子域sub1.site.com/catalog/ajax_product/view的基本URL,但必须是site.com/catalog/ajax_procduct/view形式。在像这样的子域上的.Htaccess中重定向

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(catalog/ajax_product/.*|checkout/cart/add/.*)$
RewriteRule ^(.*)$ http://site.com/$1/ [R=301,L]

不起作用!

救命!

我不确定您的应用程序配置是否正确。在我看来,您不需要使用.htaccess进行重定向。这里有几个检查点:

1( 检查您是否在后台(管理面板(为每个商店视图(子域(设置了正确的基本安全和不安全URL

System > Configuration > Web > (Un)secure > Base Url

默认情况下http://store.com,并且对于每个网站(关于Magento范围(URL应该是不同的。

2( 必须分别为每个商店视图设置Cookie域。

System > Configuration > Web > Session Cookie Management > Cookie Domain

对于默认存储,您可以将其留空,但必须为其他存储填充,例如.sub1.store.com.sub2.store.com等。请注意,开头的句点('.'(是必需的。

3( 为每个域设置Apache vhosts。

您应该在vhosts配置中为site.comsub1.site.com等提供单独的条目。

现在,您可以根据域定义要加载的存储视图。你可以通过3种方式做到这一点:

  • .htaccess
  • 修改应用程序的index.php
  • 直接在vhost中设置适当的Env变量

在这篇文章中,你可以找到每一个提到的解决方案。

在使用Magento处理多个存储视图和域时,需要在Mage::run()方法中加载一个合适的存储代码。

以下是.htaccess解决方案的示例:

SetEnvIf Host.*sub1.site.com.*MAGE_RUN_CODE="sub1"SetEnvIf Host.*sub2.site.com.*MAGE_RUN_CODE="sub2">

不要忘记在设置完全正确后刷新缓存并执行所有实体的重新索引。

最新更新