我使用rack-rewrite来添加一个会删除斜线的url重写规则,但我只想在斜杠后面没有hashbang的情况下这样做。
我尝试了以下正则表达式,但无论如何它都会重写,即使#!
之后有/
:
^/(?!#!.*)(.*)/$
# The rule
r301 %r{^/(?!#!.*)(.*)/$}, '/$1'
例如,如果网址为tada/
,则应重写为tada
,但如果为tada/#!WHATEVER_STRINGS_HERE
,则不应强制执行该规则。我的正则表达式遗失了什么?
答案 0 :(得分:2)
您可能遗漏了URL片段(#
及其后面的所有内容)从未提交给服务器。当要求浏览器访问URL /foo/bar#baz
时,它只会从服务器请求/foo/bar
并在检索到的文档中本地处理#baz
。