htaccess 301 redirect url 带和不带路径

htaccess 301 redirect url with and without path

我正在尝试重定向:

example.com/shopexample.com#shop

但前提是 url 是这样的,没有更多的子路径, 否则如果它像:

example.com/shop/mypage

我想保持原样,所以example.com/shop/mypage

这可以通过 htaccess 301 重定向实现吗?

我到目前为止没有成功的尝试是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^shop #shop [L,R=301,NC,NE]
RewriteRule ^shop/(.*)$ /shop/ [R=301,NC,L]
</IfModule>

^shop 匹配以 shop 开头的任何 URL 路径 - 如果您希望此匹配,则需要在末尾使用 $ 锚定此模式只买。

并且第二条规则需要删除 - 您想要保留那些 URL,因此一开始重写它们是没有意义的。在这里你甚至会创建一个无限循环,因为你会再次从 shop/mypage 重定向到 shop/mypage