我正在尝试为我的骨干网和苗条的 Webapp 配置 htaccess。
这是我的根网址: mysite.com/myproject/
这是我组织目录的方式:
server.php
,我使用 Slim 框架,并定义我的“路线”- 一个包含 Slim 框架的目录,称为
data
- 一个包含我的 Backbone 应用程序的目录,名为
js
我想做类似mysite.com/myproject/post
s 的事情来获取我的帖子的完整列表或mysite.com/myproject/post/:id
获取一篇帖子
我知道我可以使用重定向来“模拟”不存在的 URL。理论上,如果我尝试mysite.com/posts
,Apache/.htaccess
重定向到server.php
我的“路线”做我想做的事情并将我的结果返回到主干。
但无论我尝试过什么,似乎都有效。
编辑
我找到了部分解决方案。
我将 htaccess 和 server.php 文件移动到数据目录中。
这是我的 server.php 文件
<?php
require_once("Slim/Slim.php");
$app = new Slim();
$app->get('/posts','getPosts');
$app->get('/post/:id','getPost');
$app->run();
function getPosts() { echo "Hello world, get post list"; }
function getPost($id) { echo "Hello world, get one post = ".$id; }
?>
这是我的骨干收藏声明
window.PostList = Backbone.Collection.extend({
model : Post,
url:"data/posts",
initialize : function() {
console.log ("collection created.")
}
});
和 .htaccess 文件
RewriteEngine On
RewriteBase /myproject/data
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ server.php [QSA,L]
在fetch method
主干上,请求已发送到http://mysite.com/myproject/data/posts
,我可以看到控制台的响应Hello world, get post list
但我不能要求像mysite/myproject/posts
哪个值RewriteBase
?哪个值backbone collection
?