用于将旧URL重定向到新结构的.htaccess规则

时间:2018-12-01 作者:Gary

旧URL的格式为:

https://www.example.com/collection/item/item-name-123
新URL的格式如下:

https://www.example.com/collection/item/123
我正在尝试重定向任何点击https://www.example.com/collection/item/item-name-123https://www.example.com/collection/item/123 但我似乎无法得到.htaccess 下规则。

我尝试的是:

RewriteRule ^(.*)/item/(.*)-([0-9]+)$ $1/item/$3 [R=301]
这似乎不起作用。我是否错过了一些简单的事情?

1 个回复
SO网友:MrWhite

我是否错过了一些简单的事情?

你需要L 标志(以防止进一步处理),此指令应位于现有.htaccess 文件(即# BEGIN WordPress 第节)。

除非您已经定义了适当的RewriteBase 指令(WordPress前端控制器通常有此项),然后还需要在替换字符串前面加一个斜杠(尽管对于外部重定向,建议还是这样做)。

否则,您的正则表达式和替换字符串应该可以正常工作。

换句话说,在文件的顶部:

RewriteRule ^(.*)/item/(.*)-([0-9]+)$ /$1/item/$3 [R=302,L]
使用302(临时)重定向进行测试(以避免缓存问题),并仅在确认其正常工作时更改为301。

测试之前,您需要清除浏览器缓存。

相关推荐

Redirect undesirable domain

我有一个wordpress网站,我想运行两个不同域的主机。站点位于域example1的第一个主机中。com工作正常,但在第二个主机域示例2中。com重定向到示例1。com域。中没有设置重定向。htaccess文件。两个域中每个域的DNS都已正确设置。我的问题是我应该如何获得它这是重定向程序代码的哪一部分?