.htaccess 使用htaccess在URL末尾添加字符

.htaccess 使用htaccess在URL末尾添加字符,.htaccess,.htaccess,我必须将一个车间站点迁移到另一个车间系统 我遇到的问题是,在新的商店系统中,所有产品名称必须在URL中以-detail结尾 在今天的网站中,以下是产品的URL: domaine.com/shop/category1/productname 在新商店中,同一产品将具有以下URL: domaine.com/shop/category1/productname-detail 我希望在使用此旧URLdomaine.com/shop/category1/productname时,用户将被重定向到正确的

我必须将一个车间站点迁移到另一个车间系统

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

在今天的网站中,以下是产品的URL:

domaine.com/shop/category1/productname
在新商店中,同一产品将具有以下URL:

domaine.com/shop/category1/productname-detail
我希望在使用此旧URL
domaine.com/shop/category1/productname
时,用户将被重定向到正确的URL:
domaine.com/shop/category1/productname详细信息

这是否可以通过htaccess实现,而无需为每个产品定义一条生产线(~2500)


这家商店也有普通的URL,比如
domaine.com/contact
,我不想为这些URL添加
-detail
。仅当将产品调用到商店类别中时。

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

RewriteEngine on

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

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

是的,应该可以使用与最后没有
-detail
的任何内容匹配的标记。您是否尝试过做任何事情,或者您希望我们为您完成工作?谢谢您的快速回答。是的,我试图通过搜索这个论坛找到一个解决方案,但我找不到任何适合我需要的解决方案。我将尝试检查什么是否定正则表达式。@JeanCharle请注意,作为提问者,您可以将答案标记为已接受的答案。看见