我需要更改链接到我网站的所有网址中的一个单词。 我尝试使用以下规则,但只有当单词是URL
中的第一个单词时,它才能正常工作RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} ^/foo(?:/)?(.*)$
RewriteRule ^[/]?foo[/]?(.*) /bar/$1 [R=permanent,L,NE]
当我向REQ_URI添加通配符时,输出不正确,我不知道如何处理替换。 www.example.com/abc/def/foo/ghi重新编号为www.example.com/bar/abc/def
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} ^(.*)/foo(?:/)?(.*)$
RewriteRule ^(.*)[/]?foo[/]?(.*) /bar/$1 [R=permanent,L,NE]
如何更正重写规则?
答案 0 :(得分:2)
RewriteRule ^(.*)/foo/(.*)$ $1/bar/$2 [R=301,L]
RewriteRule ^foo/(.*)$ bar/$1 [R=301,L]
这假定foo是文件夹名称。通常在设置这样的东西时你想要某种分隔符(在这种情况下是斜杠),这样,例如,“食物”不会变成“吟游诗人”。