首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向子目录和以下任何子目录

重定向子目录和以下任何子目录
EN

Stack Overflow用户
提问于 2021-05-20 03:27:02
回答 2查看 26关注 0票数 0

我有一个问题,子目录有许多不同的路径,但在新网站上,我们不再使用这种结构。老网站是这样工作的:

代码语言:javascript
复制
example.com/photos/photo-1
example.com/photos/photo-2
example.com/photos/photo-3

在我们的新站点上,我们没有使用/photos,并且我当前的重定向尝试没有起作用

代码语言:javascript
复制
Redirect 301 /photos https://example.com/

最终重定向到

代码语言:javascript
复制
example.com/photo-1
example.com/photo-2
example.com/photo-3

正在删除照片子目录,但仍在尝试访问它后面的子目录。

任何访问example.com/photos或example.com/photos/*的尝试都应重定向到example.com/上的主页

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-20 03:50:30

这个应该可以了。

代码语言:javascript
复制
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteRule ^photos/(.+) https://example.com/ [R=301,L]
</IfModule>
票数 0
EN

Stack Overflow用户

发布于 2021-05-20 03:52:42

这可能是最有意义的方法:

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^/?photos/[^/]+/(.+)$ https://example.com/$1 [R=301]

它使用重写模块,这意味着必须将其加载到http服务器中。不过,这是标准设置。

如果不是所有的子文件夹都需要重定向,你可以命名一个模式。这允许出现异常。例如:

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^/?photos/photo-\d/+(.+)$ https://example.com/$1 [R=301]

如果两个主机对于新旧“站点”都是相同的,您可以使用内部重定向来简化操作:

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^/?photos/photo-\d/+(.+)$ /$1 [R=301]

通常,您应该尝试在实际的http服务器的主机配置中实现这样的规则。如果您没有访问中央配置的权限,则仅使用分布式配置文件(".htaccess")。各种各样的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67609697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档