【发布时间】:2012-12-04 17:43:25
【问题描述】:
我正在尝试为我的骨干网和纤薄的 Web 应用配置 htaccess。
这是我的根网址:mysite.com/myproject/
这是我组织目录的方式:
-
server.php,我使用 Slim 框架,并定义我的“路线” - 一个包含名为
data的Slim框架的目录 - 一个包含我的 Backbone 应用程序的目录,名为
js
我想做类似mysite.com/myproject/posts 的事情来获取我的帖子的完整列表
或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 的值是多少?
【问题讨论】:
-
通常你会在 Apache 中配置一个
VirtualHost指令,但是虚拟主机配置不能在.htaccess中定义。您是否有权修改服务器配置 (httpd.conf)?见:httpd.apache.org/docs/2.2/vhosts/examples.html -
感谢回复,但不,我无法访问 httpd.conf。我正在尝试这个,因为我在 stackoverflow 上关注这个答案bit.ly/qVSQgx
-
我正在使用本教程 bit.ly/Zdb3Iv 并用主干的 CRUD 方法替换 jquery ajax 调用。
标签: javascript apache .htaccess backbone.js slim