【发布时间】:2014-03-28 18:06:40
【问题描述】:
我正在尝试在 magento htaccess 中创建一个正则表达式模式,以基于关键字“guest”或“guests”链接类别
以下是我在 htaccess 文件中尝试过的规则
RewriteRule /\bgues(?:t|ts)\b/ www.domain.com/categorypath [L] RewriteRule .* index.php [L]上面的重写规则不起作用。
请帮我整理一下这个问题。
【问题讨论】:
我正在尝试在 magento htaccess 中创建一个正则表达式模式,以基于关键字“guest”或“guests”链接类别
以下是我在 htaccess 文件中尝试过的规则
RewriteRule /\bgues(?:t|ts)\b/ www.domain.com/categorypath [L] RewriteRule .* index.php [L]上面的重写规则不起作用。
请帮我整理一下这个问题。
【问题讨论】:
我找到了解决办法
我们应该将第一个“RewriteRule”放在 htaccess 文件中“RewriteEngine on”的下方。然后它会工作:)
保持下面一行不变
RewriteRule .* index.php [L]
有效的 RewriteRule,我希望这对某些人有所帮助
RewriteRule \bgues(?:t|ts)\b /contactus/index/seo [R]
以下规则不起作用
RewriteRule \bgues(?:t|ts)\b /contactus/index/seo [L]
实际上,如果有人知道,我想要内部重定向而不是外部重定向,请在此处发布。
【讨论】:
这将是使用 Magento 的内置目录 URL 重写来控制此行为的“Magento 方式”。也许你有理由不这样做,但在Magento Admin->Catalog->URL rewrite management 中,点击Add URL Rewrite(右上角)。
您会想要一个“类别”type:只需单击列表中的类别。现在在重写页面上输入“guests”作为请求路径。当你在这里写下'Target path'(它应该类似于catalog/category/view/id/251,接下来你将使用它)。保存新的重写并测试/guests 在/categorypath 处显示页面。
现在/guest - 它有点不同(因为Magento 喜欢'ID Path' 是独一无二的)。这次从'Create URL Rewrite:' 下拉列表中选择'Custom'。还有更多需要填写的框,但只需输入 ID path = guests(您在上面创建的 URL)、Request path = guest 并将 Target path 设置为类别的相同目标路径,例如 catalog/category/view/id/251。
您可以继续以这种方式通过链接 ID 路径和请求路径来指示 Magento 使多个 URL 转到相同的目标路径。
更改Magento .htaccess 很困难,因为 Magento 不使用 htaccess 路由 URL。如果您需要高级路由,我建议您扩展到 Magento 的前端路由器,您可以从 Alan Storm 的优秀网站文章中了解。否则,请坚持使用内置目录 URL 重写。
请注意,稍后,如果您从 Magento database 中删除 core_url_rewrite table 并重新索引它(因为大型重写表可能会降低您的网站速度),您可能会丢失这些手动条目并必须重新输入它们;所以将它添加到您的 Magento 定期维护清单(或编写一个脚本来重新创建 core_url_rewrite 中的表条目)。
【讨论】: