如何使用.htaccess文件来重定向旧的URL(有文章id)到新的URL(没有文章id)?

iszxjhcz  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(122)

我有一个基于Joomla的网站,使用K2(CCK)来创建内容。Joomla更新到了J 4。这是Joomla的一个主要版本,不幸的是,K2团队没有更新K2使其兼容J 4。所以我把所有的文章移到了Zoo(CCK)。
现在问题出在URL上了,旧URL的结构是example.com/topics/category/item/12345678-this-is-the-article-alias
迁移后,新的URL是example.com/topics/category/item/this-is-the-article-alias。我在谷歌上搜索过,但没有找到任何方法将旧的URL重定向到新的URL。我只想删除带有-的文章ID(数字/位数),它位于旧URL中的item/之后和item/之后的第一个-之前。
我已经尝试了规则RewriteRule ^(.*)item/(\d+\-)?(.*) /$1$3 [R=301,L],但它是删除**item/**以及从URL,我想保留它,只是想只删除文章ID.

i2loujxw

i2loujxw1#

您实际上已经很接近了。您可以使用此规则来重定向。请确保将此规则保留在RewriteEngine On行之后的顶部:

RewriteRule ^(.+/item/)\d+-(.+)$ /$1$2 [R=301,L,NC,NE]

您尝试了以下规则:

RewriteRule ^(.*)item/(\d+\-)?(.*) /$1$3 [R=301,L]

它与item/匹配,但未在任何捕获组中捕获,因此在目标中被忽略。

au9on6nz

au9on6nz2#

使用显示示例和尝试,请尝试以下.htaccess规则确保在测试URL之前清除浏览器缓存这是根据要求对URL进行外部重定向

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(topics/category/item)/[^-]*-(\S+)\s [NC]
RewriteRule ^ /%1/%2? [R=301,L,NE]

相关问题