htaccess 301 重定向整个目录

Posted

技术标签:

【中文标题】htaccess 301 重定向整个目录【英文标题】:htaccess 301 redirect entire directory 【发布时间】:2014-03-22 07:26:52 【问题描述】:

将大型静态站点迁移到 wordpress(以及重建)后,我有一个与原始目录结构不同的永久链接结构,但新的帖子 slug 与原始文件名相同。值得一提的是,永久链接结构模仿了旧文件路径的文件扩展名。

例如:

曾经是什么(静态目录)

www.example.com/old/path/file.htm

现在是(wordpress 永久链接结构)

www.example.com/new/path/file.htm (note: permalink structure mimics the .htm extension)

我的问题:是否有一个简单的 htaccess 重写规则可以将访问者从 /path/to/file/(file.htm) 重定向到 /new/path/to/(file.htm) ,而不必为每个文件创建重定向?

【问题讨论】:

【参考方案1】:

使用 mod_alias 更加简单:

Redirect 301 /old /new

但如果你的 htaccess 文件中已经有重写规则,那么你需要坚持使用 mod_rewrite:

RewriteRule ^old/(.*)$ /new/$1 [L,R=301]

【讨论】:

感谢 Jon 的简洁回复。非常感谢! 一个相关问题。如果我说,这些规则中有 20 条左右,我会在性能上受到影响吗? @PeteSorensen 这取决于您获得多少流量,但我从未注意到中/低流量网站有任何问题。我注意到运行 php 脚本比 5000 条规则更受欢迎。

以上是关于htaccess 301 重定向整个目录的主要内容,如果未能解决你的问题,请参考以下文章

RewriteRule 301重定向整个目录和子目录

301 重定向.htaccess

.htaccess 结合 301 重定向和 URI 重写

wordpress 和 htaccess 301 重定向没有管理员

使用 .htaccess 进行大规模 301 重定向

htaccess 301 将根目录重定向到子目录