重定向所有 url,不包括 url 的一部分 301

Redirect all urls excluding part of url 301

我将更改网站上的 url 结构

例如。主页现在是:

http://example.com/web/www/

和所有其他 url 地址遵循此结构:

http://example.com/web/www/sample-post/

新地址将是(部分/web/www/将被删除):

http://example.com

其余:

http://example.com/sample-post/

那么我可以使用一条规则自动重定向所有地址,该规则将从地址中删除部分 /web/www/ 还是我必须手动重定向每个地址?

要从请求的 URL 中删除 /web/www 前缀,您可以使用文档根目录中 .htaccess 文件顶部的 mod_rewrite 这样做:

RewriteRule On

RewriteRule ^web/www/(.*) / [R=301,L]

(.*) 部分捕获 /web/www/ 之后剩余的 URL-path,它保存在 反向引用中,我们将重定向到该反向引用。

首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。