【发布时间】:2014-08-11 18:28:25
【问题描述】:
问题陈述
我目前正在开发一个内部 RESTful API,并且我正在使用我们的主域名作为环境标识符。但是,我注意到 Slim 根本不喜欢在其中有 dot 的路线。
示例案例
我有一个使用 PHP 的内置网络服务器运行的本地网络服务器,我调用了 php -S 0.0.0.0:5000 来让它运行。
一旦网络服务器启动,我在索引页面上有一个简单的“hello world”。一切正常,花花公子。
然后我设置如下路线:
$app->get('/:domain/:id', function($domain, $id)
{
echo $domain . ' ' . $id;
}
有了这个,我设置了希望解析0.0.0.0:5000/apple.com/juicers的路由。我尝试使用0.0.0.0:5000/apple/juicers,页面打印出苹果榨汁机。但是使用0.0.0.0:5000/apple.com/juicers,我得到一个 404 Not Found 错误。
到目前为止我已经尝试过什么
网址重写
我在 Google 以及 Slim 框架的 Github 问题上查找了可用资源。好像有人遇到过类似的问题:https://github.com/codeguy/Slim/issues/359
该票中建议的解决方案是:URL 重写修复。我试过了,但没有用。我在项目目录的根目录下设置了.htaccess,并在我的Mac 的httpd.conf 文件中打开了AllowOverRide All。
php -S 0.0.0.0:5000 index.php
我没有单独运行php -S 0.0.0.0:5000,而是在index.php 上运行命令。此时,slim 框架没有抛出 Not Found 错误,而是解析到我的基本路由,我设置如下:
$app->get('/', function() { echo "hello world"; });
谢谢
我已经无能为力了,我们将不胜感激任何帮助。非常感谢您的阅读!
【问题讨论】:
标签: php apache .htaccess frameworks slim