由于一些错误,我们的网站在 url 中有带有 & 的链接。例如 /movies-&-plays/find/。然而,这会引发 404 导致网站管理员出现大量断开的链接,因为这在我们的应用程序中无法处理。有没有办法将这些类型的 url 中的 '&' 替换为 'and',即只有那些带有 /find/ 的 url。这样就可以编写一个正则表达式来编写一个 301 重定向到所有此类 URL 到带有 'and' 而不是 & 的 url。例如 /movies-&-plays/find/ 必须重定向到 /movies-and-plays/find/。任何帮助将不胜感激。
问问题
90 次
2 回答
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/
于 2013-02-08T12:26:13.523 回答
0
对于匹配的 URL ,([^&]+&[^&]*)+/find/
全部替换&
为and
.
于 2013-02-07T05:42:46.843 回答