Backbone.js和mod重写

rya*_*zec 8 javascript apache mod-rewrite backbone.js pushstate

所以我正在玩骨干网并且已经到了加载使用pushState的直接页面无法正常工作的put.如果我尝试访问my.url.com/login,它会给我一个未找到的页面,因为它直接不存在.我有以下重写规则:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule (.*) index.html [L,QSA]
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用(想到它我得到一个错误的请求,而不是没有找到).如何通过mod重写使pushState url正确加载?

dfr*_*man 0

这实际上是我第一次阅读新的历史记录 API 以及 Backbone 如何使用它——非常酷的东西。

要解决错误请求问题,您所需要做的就是在前面添加一个/before index.html。在我看来,内部正确重定向并按照您的预期传递查询字符串。

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.html [L,QSA]
Run Code Online (Sandbox Code Playgroud)