由于某些错误,我们的网站链接到带有&的网址。在网址中。例如/ movies-& -plays / find /。然而,这会引发404导致网站管理员上的许多链接断开,因为我们的应用程序中没有处理。 有没有办法取代'&'这些类型的网址中的'和',即只有那些带/ find /的网址。这样就可以编写一个正则表达式来写一个301重定向到所有这类URL的URL到'和'而不是&amp ;.例如/ movies-& -plays / find /必须重定向到/ movies-and-plays / find /。任何帮助将不胜感激。
答案 0 :(得分:1)
perl -pe 's/(\/[^\/ &]*)&(?=[^\/ ]*?\/find\/)/$1and/g' FILENAME
给出此输入时:
http//www.web.com/hello&goodbye/find/
///////&/junk/to/test
////&/find/
生成以下输出:
http//www.web.com/helloandgoodbye/find/
///////&/junk/to/test
////and/find/
答案 1 :(得分:0)
对于与([^&]+&[^&]*)+/find/
匹配的网址,将所有&
替换为and
。