【问题标题】:Adding characters end of URL with htaccess使用 htaccess 在 URL 末尾添加字符
【发布时间】:2014-12-28 22:20:25
【问题描述】:

我必须将商店网站迁移到另一个商店系统。

我的问题是,在新的店铺系统中,所有产品名称都必须在 URL 中以-detail 结尾。

在今天的网站中,这里是产品的 URL:

domaine.com/shop/category1/productname

在新店相同的产品会有这个网址:

domaine.com/shop/category1/productname-detail

我希望当使用这个旧 URL domaine.com/shop/category1/productname 时,用户将被重定向到正确的一个:domaine.com/shop/category1/productname-detail

这可以通过 htaccess 来完成,而不必为每个产品定义一行 (~2500) 吗?

这家商店也有像domaine.com/contact 这样的普通网址,我不想为这些网址添加-detail。仅在将产品称为商店类别时。

【问题讨论】:

  • 是的,negating regex 应该可以匹配最后没有 -detail 的任何东西。您是否尝试过做任何事情,还是希望我们为您完成工作?
  • 感谢您的快速回答。是的,我试图通过搜索这个论坛来找到解决方案,但我找不到任何适合我需要的解决方案。我将尝试检查否定正则表达式是什么。

标签: .htaccess


【解决方案1】:

您可以使用 mod_rewrite 来做到这一点。确保 mod_rewrite 模块已加载到您的主配置文件中。然后将其放入您的 .htaccess 中。该条件确保 url 不以 -detail 结尾。然后一个带有 shop 的 url,后跟 2 个其他路径部分被重定向到附加了 -detail 的相同 url。

RewriteEngine on

RewriteCond %{REQUEST_URI} !-detail$
RewriteRule ^shop/[^/]+/[^/]+/?$ %{REQUEST_URI}-detail [R,L]

测试此规则并确保其正常工作后,将 R 标志替换为 R=301 以使重定向永久化。

【讨论】:

猜你喜欢
  • 2021-03-09
  • 1970-01-01
  • 2012-06-01
  • 2018-07-17
  • 2015-02-10
  • 1970-01-01
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多