我对网址结构做了一些更改。这是我的htaccess文件
Redirect 301 /top100 http://www.example.com
Redirect 301 /monthlytop10 http://www.example.com/monthlytop
Redirect 301 /top100/Hardwell http://www.example.com/top100/hardwell
Redirect 301 /top100/Armin%20van%20Buuren http://www.example.com/top100/armin-van-buuren
Redirect 301 /top100/David%20Guetta http://www.example.com/top100/david-guetta
这适用于前两种情况但不适用于其他情况。它会将www.example.com/top100/Armin%20van%20Buuren
重定向到www.example.com/Armin%20van%20Buuren
如果我删除了htaccess文件中的第一行,它根本不会重定向并产生404错误。这有什么不对?
答案 0 :(得分:0)
这是因为Redirect
指令不支持正则表达式。请改用RedirectMatch
来完全匹配您想要的内容:
RedirectMatch 302 "^/top100/?$" /
RedirectMatch 302 "^/monthlytop10/?$" /monthlytop
RedirectMatch 302 "^/top100/Hardwell/?$" /top100/hardwell
RedirectMatch 302 "^/top100/Armin van Buuren/?$" /top100/armin-van-buuren
RedirectMatch 302 "^/top100/David Guetta/?$" /top100/david-guetta