【问题标题】:Magento htaccess regex not workingMagento htaccess 正则表达式不起作用
【发布时间】: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]

上面的重写规则不起作用。

请帮我整理一下这个问题。

【问题讨论】:

    标签: regex .htaccess magento


    【解决方案1】:

    我找到了解决办法

    我们应该将第一个“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] 
    

    实际上,如果有人知道,我想要内部重定向而不是外部重定向,请在此处发布。

    【讨论】:

      【解决方案2】:

      这将是使用 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 中的表条目)。

      【讨论】:

      • 感谢您宝贵的 cmets。假设我们有 1000 个类别,为此我们需要创建一个带有关键字(客人、商店等)的 seo URL。在 Magento 方式中,我们必须为此添加 1000 个 URL,但这不是正确的方法,如果我们在 htaccess 中创建一个正则表达式,我们可以在一行中实现相同的效果。现在告诉我哪个更好
      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      相关资源
      最近更新 更多