如何用.htaccess仅重定向顶级URL,不影响次级页面?
解决.htaccess仅重定向顶级页面而非次级页面的问题
你当前使用的Redirect 301 /support /donate属于前缀匹配,会把所有以/support开头的路径都重定向,包括次级页面/support/test,这就是问题根源。要实现仅重定向/support和/support/,可以用以下两种方案:
方案一:使用RedirectMatch(正则匹配)
RedirectMatch支持正则表达式,能精确匹配目标路径:
RedirectMatch 301 ^/support/?$ /donate
^/support:匹配以/support开头的路径/?:匹配可选的尾部斜杠$:匹配路径结尾,确保不会匹配/support/test这类次级路径
方案二:使用mod_rewrite的RewriteRule
如果你的服务器启用了mod_rewrite,也可以用这个规则:
RewriteEngine On RewriteRule ^support/?$ /donate [R=301,L]
^support/?$:精确匹配support或support/(注意这里不需要开头的/,因为RewriteRule匹配的是去掉主机名后的路径部分)[R=301]:指定301永久重定向[L]:标记为最后一条规则,避免后续规则干扰
两种方案都能实现你的需求,选适合自己服务器配置的即可。
内容的提问来源于stack exchange,提问作者ScoobaSteve
相关产品推荐
相关产品推荐

