我正在开发一个Laravel / Ember.js应用程序,其中Laravel为后端框架和RESTful数据供应商提供一般角色,Ember.js部分用于客户端。
到目前为止一切正常。但是我希望Ember.js控制一些子网址。
假设我在Laravel中有/members
路由服务于Ember应用程序,我希望子结果URL能够像这样利用pushState和Ember:
/members/add
,/members/edit/1
等。而不是/members#/add
,/members#/edit/1
使用Ember很容易实现:
App.Router.reopen({
location: 'history', //instead of 'hash'
rootURL: '/members'
})
单击链接时效果很好。
然而,当我刷新页面时,Laravel路由器开始使用.htaccess
尝试通过laravel的index.php在公共文件夹中提供每个URL。这是Laravel原始.htaccess
文件:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我不是Apache URL重写的专家,所以我需要告诉.htaccess
重写/members
之后的所有内容(/members/add
,/members/view
等。 。)返回/members
路线,以便Ember.js接管并适当重定向。
我试图做这样的事情,但它不起作用:
<IfModule mod_rewrite.c>
Options -MultiViews
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine On
RewriteCond %{REQUEST_URI} /members
RewriteRule (.*) members
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
对此网址重写主题的任何帮助表示赞赏。谢谢!
答案 0 :(得分:1)
看看:
它为我工作!
再见!