我正在尝试设置一些301,我意识到如果在"子目录"之后有任何内容,路径get会被重定向。这是一个cms站点,所以它们不是实际的目录。
但是例如
Redirect 301 /products http://example.com/products/all
正在重定向/products/category和/products/category/category名称
我是不是遗漏了什么?
Redirect
指令就是这样工作的。它们有效地移动了完整的目录层次结构,即原始路径附加到目标URL后指定的子目录或文件。
如果这是你不想要的副作用,请切换到RedirectRule
作为
RedirectRule ^products/?$ /products/all [R=301,L]
我假设你在同一个网站内重定向。如果没有,您将像以前一样指定完整的目标URL。
RedirectRule ^products/?$ http://example.com/products/all [R=301,L]
Redirect
指令可以被视为"虚拟"链接两个URL路径节点。因此:
Redirect /A /B
这就像将文件夹A缩短为文件夹B。因此,这将包括文件夹A内的所有。
如果只想重定向特定的URL,请使用RedirectMatch
:
RedirectMatch 301 /products/?$ http://example.com/products/all