url重写条带斜线,除非hashbang先于

时间:2014-04-20 11:14:03

标签: ruby url-rewriting rack

我使用rack-rewrite来添加一个会删除斜线的url重写规则,但我只想在斜杠后面没有hashbang的情况下这样做。

我尝试了以下正则表达式,但无论如何它都会重写,即使#!之后有/

^/(?!#!.*)(.*)/$

# The rule
r301 %r{^/(?!#!.*)(.*)/$}, '/$1'

例如,如果网址为tada/,则应重写为tada,但如果为tada/#!WHATEVER_STRINGS_HERE,则不应强制执行该规则。我的正则表达式遗失了什么?

1 个答案:

答案 0 :(得分:2)

您可能遗漏了URL片段(#及其后面的所有内容)从未提交给服务器。当要求浏览器访问URL /foo/bar#baz时,它只会从服务器请求/foo/bar并在检索到的文档中本地处理#baz