如何使用 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 将非 www 重定向到 www URL?
如何使用 .htaccess 正确地将 HTTP 301 重定向到 HTTPS?
如何将网站 301 永久重定向到另一个网站和永久链接的子类别(使用 .htaccess)