.htaccess中实现/item/x到/item/y的重定向问题求助
正确的重定向配置方法
你之前用Redirect指令无效的核心原因是:当前配置启用了mod_rewrite,它的规则执行优先级高于mod_alias的Redirect,请求会先被原有Rewrite规则处理,导致重定向规则根本没机会触发。
必须用mod_rewrite的规则来实现,并且要把这条重定向规则放在所有现有规则的最前面,确保优先执行:
RewriteEngine On # 301永久重定向/item/x到/item/y(支持末尾带/或不带/) RewriteRule ^item/x/?$ /item/y [L,R=301,NC] # 原有规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^item/(.*)/?$ item.php/$1 [L,NC] RewriteRule ^([^\.]+)$ $1.php [L,NC]
参数说明:
R=301:永久重定向,对SEO友好,浏览器会缓存该重定向规则L:执行完这条规则后停止后续规则匹配NC:不区分大小写,匹配/item/X、/item/x等所有大小写组合/?:兼容URL末尾带斜杠(/item/x/)和不带斜杠(/item/x)的情况
如果只是临时重定向(后续可能恢复原链接),可以把R=301改为R=302。
内容的提问来源于stack exchange,提问作者AC1D
相关产品推荐
相关产品推荐

