.htaccess 如何301重定向删除包含单词注解+随机数的URL部分

w1e3prcc  于 2023-03-23  发布在  其他
关注(0)|答案(1)|浏览(77)

我最近把我的网站搬到了一个新的域名,并改变了一堆东西。在这个过程中,我似乎已经结束了产生了很多404错误,由于这样的网址:
mywebsite.com/theblogpost/comment-68875
这在很多博客文章中都会发生,所以博客文章的位是可变的,结尾的数字也是可变的。我试过用RedEx测试工具和htaccess测试器进行实验,但似乎我不够聪明,无法解决这个问题
我只找到了\b(\wcomment-\w)\b,它与RegEx测试中的短语匹配,但无法解决如何将其正确应用于RewriteCond/RewriteRule
提前感谢您的帮助!

8wigbo56

8wigbo561#

这个问题有点模糊,但我认为重要的细节是如何匹配这样的传入请求,剩下的你得自己调整...
要将所有此类请求重定向到同一目标:

RewriteEngine on
RewriteRule ^/?[^/]+/comment-\d+/?$ / [R=301,END]

要将所有此类请求重定向到实际的博客文章:

RewriteEngine on
RewriteRule ^/?([^/]+)/comment-\d+/?$ /$1 [R=301,END]

我在这里使用了绝对路径,因为问题读起来好像你使用DOCUMENT_ROOT文件夹作为基础。显然,规则也可以使用相对路径实现。
我个人明确建议在http服务器的中央主机配置中实现这样的规则,如果你使用的是apachehttp服务器,并且你已经预先启用了这个特性,你可以使用一个 distributed 配置文件(请参阅AllowOverride指令的文档)。但这增加了复杂性,并确实降低了http服务器的速度。因此,只有在您无法访问中央配置时才能执行此操作(请阅读:如果你使用的是便宜的主机提供商)。

相关问题