0

我正在开发一个 Laravel/Ember.js 应用程序,其中 Laravel 充当后端框架和 RESTful 数据提供者的一般角色,而 Ember.js 部分用于客户端。

到目前为止,它工作正常。但是我希望 Ember.js 控制一些子 URL。

假设我/members在 Laravel 中有路由服务于 Ember 应用程序,并且我希望子后续 URL 能够利用带有 Ember 的 pushState,如下所示:

/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>

感谢您对 url 重写这个主题的任何帮助。谢谢!

4

1 回答 1

1

看一看:

在此处输入图像描述

它对我有用!

再见!

于 2014-06-02T14:09:42.580 回答