【问题标题】:rewrite htaccess to remove slug product重写 htaccess 以删除 slug 产品
【发布时间】:2022-01-29 09:36:59
【问题描述】:

我有一些这样的网址:

https://example.com/product-name

我想让.htaccess 以这种方式转换为 SEO URL:

https://example.com/product/product-name

否则。

这就是我的.htaccess 当前的样子(它位于我的根目录中):

RewriteEngine On
RewriteRule ^([^/]+)$ product/$1 [L]

在过去的 24 小时内,我已经阅读并尝试了许多类似的示例,但均无济于事。我确定我的服务器允许重写。希望有人能帮忙。

【问题讨论】:

  • “产品”这个词只是文字吗?您的 URL 当前是如何路由的?像/product-name 这样的 URL 大概已经需要一些 URL 重写才能工作?如果您需要“转换为 SEO”,那么您大概应该重定向 URL,而不是重写?但是,您的标题要求“删除” slug 产品,但您的示例似乎正在添加它?!
  • 感谢您的回答,我有带有链接 mydomain/product-name 的旧网站,我需要将其重定向到带有链接 mydomain/product/product-name 的新网站,并且“产品”是类别名称。新网站使用wordpress cms

标签: wordpress apache .htaccess mod-rewrite


【解决方案1】:

也许在您的.htaccess 文件的顶部尝试类似以下的操作, 现有的 WordPress 指令之前。 IE。在# BEGIN WordPress 评论标记之前。

RewriteRule ^([\w-]+)$ /product/$1 [R=302,L]

这是“重定向”,而不是“重写”。既然你说这是为了 SEO。

最终,这可能需要一个 301(永久)重定向,但首先使用 302(临时)重定向彻底测试以避免潜在的缓存问题。

正则表达式 ^([\w-]+)$ 也比您的示例更具限制性。具体来说,它不包括点,因此不会匹配像index.php 这样的实际文件,但仍会匹配product-name

【讨论】:

    猜你喜欢
    • 2017-01-10
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多