- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在安装 magento 时遇到问题。我用的是Magento ver。 1.5.0.1,社区版开发本站http://cissmarket.com/ .
当我将语言从欧盟版本更改为法语,然后再更改为德语时,问题出现了。更改为法语是可以的,但是当在同一页面中我更改为德语时,我收到 404 错误。这也是 Google 网站管理员工具中的 404 代错误,例如,当我尝试获取此链接并将其粘贴到浏览器中时,它也会给我一个 404 错误。我在 Google 网站管理员工具中有大约 50 种产品和 ~550 404 错误。我了解到问题出在我的描述上。
此外,我有一个 SEO 问题,因为我有这个法语页面:
http://cissmarket.com/de/cartouches-refilables.html
当我切换到德文版网站时,它会将我带到此链接
http://cissmarket.com/de/cartouches-refilables.html?___from_store=fr (如果我现在尝试切换到英国,我将得到上面提到的 404)
而不是去这个:
http://cissmarket.com/de/nachfullpatronen.html
已经检查过这个404 error when switching between stores when in a category on magento但它与我的问题无关。
关于设置:
因此得出结论:问题是当我从一个页面切换到另一个页面时,语言的 2 次连续更改和错误的 url 地址给出了 404。
如有任何建议,我们将不胜感激。
更新:试过这个http://www.activo.com/how-to-avoid-the-___from_store-query-parameter-when-switching-store-views-in-magento但它会在第一次语言更改时导致 404
编辑#1:
发现问题:文件 languages.phtml 包含此代码 <?php echo str_replace ("/fr/","/de/",$_lang->getCurrentUrl()); ?>
根据相应的翻译,实际上只替换了语言代码,而不是整个 url。
如此应用于此
它会返回
那么有谁知道如何获取商店中其他语言的当前页面对应的URL吗?
编辑#2(使用@Vinai 解决方案):
它适用于产品页面,但不适用于类别。
最佳答案
据我所知,原生Magento中没有这样的东西。
也就是说,您可以使用以下代码获取每个商店的当前页面 URL。
$resource = Mage::getSingleton('core/resource');
$requestPath = Mage::getSingleton('core/url')->escape(
trim(Mage::app()->getRequest()->getRequestString(), '/')
);
$select = $resource->getConnection('default_read')->select()
->from(array('c' => $resource->getTableName('core/url_rewrite')), '')
->where('c.request_path=?', $requestPath)
->where('c.store_id=?', Mage::app()->getStore()->getId())
->joinInner(
array('t' => $resource->getTableName('core/url_rewrite')),
"t.category_id=c.category_id AND t.product_id=c.product_id AND t.id_path=c.id_path",
array('t.store_id', 't.request_path')
);
$storeUrls = (array) $resource->getConnection('default_read')
->fetchPairs($select);
这将为您提供一个数组,其中数组键是商店 ID,数组值是 Magento 基本 URL 之后的请求路径,例如假设您的法国商店的 ID 为 1 而德国商店的 ID 为 2,您将得到:
Array
(
[1] => cartouches-refilables.html
[2] => nachfullpatronen.html
)
然后,在输出每个商店的 URL 的 foreach
循环中,使用
<?php $url = isset($storeUrls[$_lang->getId()]) ? $_lang->getUrl($storeUrls[$_lang->getId()]) : $_lang->getCurrentUrl() ?>
调用 $_lang->getUrl()
将添加基本 URL,因此您将获得每个商店的完整 URL(例如 http://cissmarket.com/de/nachfullpatronen.html)。如果在 core_url_rewrite
表中找不到商店 View 值,它将恢复为默认行为。
您仍然需要 ___store=fr
查询参数,否则 Magento 会认为您正在尝试访问旧商店上下文中的新路径。幸运的是,getUrl()
调用商店模型会自动为您添加它。
查询数据库的代码当然可以在任何地方(因为它是 PHP),甚至可以在模板中,但请不要把它放在那里。 访问数据库的代码的正确位置是资源模型。我建议您创建一个资源模型并将其放在一个方法中。
关于url - Magento 多语言 - 语言的双重变化导致 404(或如何在商店而不是 View 中更改语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096622/
假设我拥有域 mydomain.com,并且我在服务器上有一个 Web 应用程序,网址为 http://99.99.99.99:1234/MyApplication/startpage.somethi
我正在尝试通过以下方式更新已解析的 URL: u, _ := url.Parse(s) if u.Scheme == "" { u.Scheme = "https" } if u.Path =
如何将 www.somesite.com/api(.*) 映射到 www.somesite.com/$1:9000? (我需要将/api 映射到运行 @ 端口 9000 的 Play 框架应用程序)
我有一个资源结构,如航类 > 座位 > 预订,所以预订属于某个航类的某个座位: http://example.com/jdf_3prGPS4/1/jMBDy46PbNc
我想知道以下网址是否有效。 路径中的点,在主机之后: http://www.example.com/v.b.w..com 主机中的点,作为子域的一部分: http://v.b.w..co.manufa
我有两个域 - crmpicco.co.uk 和 ayrshireminis.com - 如果我浏览到: www.crmpicco.co.uk/mini/new我希望能够重定向到 www.ayrshi
我正在尝试使用 URL 重写和应用程序请求路由来重写到外部 URL。我设置了以下规则: 在规则中,“patternToMatch”是我试
我已经安装了带有 SharePoint 和 Url Rewrite 模块的 IIS 7.0。 是以下句子还是我配置错误才能看到这个结果? Url Redirect 可以将 url 重定向到任何内部(在
我想知道,为了获得良好的 SEO,您必须在 URL 中使用自然语言。您知道字符中单词或短语的最大大小吗?例如: www.me.com/this-is-a-really-long-url.htm 我问这
有人知道在 SEO 友好 URL 中使用逗号有什么问题吗?我正在使用一些在其 SEO 友好 URL 中使用大量逗号的软件;但我 100% 肯定我见过一些程序/平台无法正确识别 URL 并在第一个逗号后
我有一个网站,我正在为所有链接使用干净的 URL。我想知道对于简短的基本 URL 与较长的描述性 URL 有何看法。 例如,如果我的网站是关于 Georgia Bulldog 足球新闻的,那么哪个网站
我正在编写一个类似于 tinyurl 的 URL 缩短器,我想知道如何跟踪已经使用我的服务缩短的 URL?例如,tinyurl 为相同的长 URL 生成相同的小 URL,而不管是谁创建的。如
我是 magento 的新手。我正在开发一个模块。为此,我有一些要显示链接的 css 和 js 文件。我目前有类似 的链接 getSkinUrl('module_tryouts/css/jquery.
我想基于 HTTP_URL 重写 URL 以重定向到不同的端口,同时保留其余的 URL 和查询字符串(如果指定)。例如, http://host/john/page.aspx 应该重定向到 http:
我遇到了以下问题: 我的 Grails (2.2.0) 应用程序具有以下 URL 映射: "/api/clientQuote/$labcode/$cliCode/$quoCode"(controlle
我有一个很长的 URL,它不适合 URL 字段。它一直在修剪。该怎么办?有没有办法增加 SharePoint 2010 中的 URL 字段字符限制? 或者解决方法来容纳长 URL。例如,以下 URL
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我们从客户以前的开发人员那里继承了相当多的 Google Apps 脚本项目。 Apps 脚本通过嵌入式小部件部署在 Google 网站 (sites.google.com) 的各个页面上。每当我们需
我正在编写一些文档,但遇到了一些词汇问题: http://www.example.com/en/public/img/logo.gif 被称为“绝对”网址,对吗? ../../public/img/l
我们从客户以前的开发人员那里继承了相当多的 Google Apps 脚本项目。 Apps 脚本通过嵌入式小部件部署在 Google 网站 (sites.google.com) 的各个页面上。每当我们需
我是一名优秀的程序员,十分优秀!