重定向所有 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(临时)重定向进行测试,以避免潜在的缓存问题。
我将更改网站上的 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(临时)重定向进行测试,以避免潜在的缓存问题。