为什么htaccess的重写规则^富$也匹配^ $ FOOBAR(Why does htaccess

2019-07-30 06:28发布

我想这些URL重定向/转发:

here.com/foo    ==> there.com/a/b
here.com/foobar ==> there.com/c/d

我有这两个的.htaccess重写规则行:

RewriteRule ^foo$    http://there.com/a/b [R=301,L] 
RewriteRule ^foobar$ http://there.com/c/d [R=301,L]

但结果是:

here.com/foo    ==> there.com/a/b
here.com/foobar ==> there.com/a/b

foo也匹配foobar我如何工作的呢?

Answer 1:

这是一个浏览器缓存的问题。 我最初有规则的错误。 我改变了规则上面列出的那些,而是因为我使用HTTP状态代码301(永久移动),浏览器缓存了它,而不是从服务器获取了新的要求。 我尝试了Chrome的隐身窗口,并发现了问题。

请注意,设置HTTP状态代码303(见其他)导致浏览器不缓存它。



文章来源: Why does htaccess RewriteRule ^foo$ also match ^foobar$