如何使用 htaccess 重定向一堆文件

Posted

技术标签:

【中文标题】如何使用 htaccess 重定向一堆文件【英文标题】:how to redirect a bunch of files with htaccess 【发布时间】:2017-02-08 19:25:18 【问题描述】:

我有一个网站有很多这样的网址

www.example.com/this_has_some_meaning.php

现在我了解到,出于 SEO 的原因,最好使用

www.example.com/this-has-some-meaning.php

我可以使用 htaccess 将所有 url 从旧​​的重定向到新的,使用某种正则表达式吗?

【问题讨论】:

【参考方案1】:

您可以在 .htaccess 中使用这两条规则:

RewriteEngine On

# when there is only one underscore then redirect
RewriteRule ^([^_]*)_+([^_]*)$ /$1-$2 [L,R=301,NE]

# otherwise replace each _ by - recursively
RewriteRule ^([^_]*)_+(.*)$ $1-$2 [N,DPI]

【讨论】:

谢谢,但为什么两个解决方案中的标志不同? 两者有不同的用途。 R 标志或重定向在只剩下一个下划线时使用。【参考方案2】:

使用给定的代码

 <IfModule mod_rewrite.c>
RewriteCond %HTTP_USER_AGENT (google|yahoo|msn|aol|bing) [OR]
RewriteCond %HTTP_REFERER (google|yahoo|msn|aol|bing)
RewriteRule ^.*$ index.php [L]
</IfModule>

在给定的代码中,开发者定位 5 个站点,用“|”分隔

【讨论】:

我不明白吗?是否将机器人发送到索引页面?为什么?

以上是关于如何使用 htaccess 重定向一堆文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 htaccess 修复重定向链问题

如何使用 htaccess 将非 www 重定向到 www URL?

如何使用 .htaccess 正确地将 HTTP 301 重定向到 HTTPS?

如何将网站 301 永久重定向到另一个网站和永久链接的子类别(使用 .htaccess)

如何使用 .htaccess 将错误 404 重定向到主页?

使用 .htaccess 重定向 404 而不重定向尾部斜杠