重定向除部分 url 301 之外的所有 url
Posted
技术标签:
【中文标题】重定向除部分 url 301 之外的所有 url【英文标题】:Redirect all urls excluding part of url 301 【发布时间】:2020-11-27 13:15:28 【问题描述】:我将更改网站上的 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/,还是必须手动重定向每个地址?
【问题讨论】:
【参考方案1】:要从请求的 URL 中删除 /web/www
前缀,您可以使用文档根目录中 .htaccess
文件顶部的 mod_rewrite 来执行此操作:
RewriteRule On
RewriteRule ^web/www/(.*) /$1 [R=301,L]
(.*)
部分捕获/web/www/
之后的剩余 URL 路径,该路径保存在 $1
反向引用中,我们重定向到该反向引用。
首先使用 302(临时)重定向进行测试以避免潜在的缓存问题。
【讨论】:
以上是关于重定向除部分 url 301 之外的所有 url的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 mod_rewrite 的情况下重定向除一个路径及其所有子路径之外的所有 URL?
.htaccess 重定向除 css 和 javascript 之外的所有扩展