我在Angular 4上创建了一个空白的新项目(带有angular-cli),以便尝试将它与PHP路由一起使用,我正在使用Phroute Fast route。
在尝试之前,我曾经用param调用整个文件来调用特定的函数,如下所示:
角色服务
apiGet(): any {
return this._http.get('api/server/user.php?action=getUser');
}
我尝试安装Phroute但是没有用,当我尝试像下面的代码那样调用它时,我收到以下错误:
apiGet(): any {
return this._http.get('api/user');
}
获取http://localhost/api/index.php net :: ERR_TOO_MANY_REDIRECTS
文件夹结构 :
(used to call files with extensions)
的index.php
require 'vendor/autoload.php';
function processInput($uri) {
$uri = implode('/', array_slice(
explode('/', $_SERVER['REQUEST_URI']), 3
));
return $uri;
}
function processOutput($response){
echo json_encode($response);
}
$router = new Phroute\RouteCollector(new Phroute\RouteParser);
$router->get('user', function(){
return 'Hello, PHRoute!';
});
$dispatcher = new Phroute\Dispatcher(router);
try {
$response = $dispatcher->dispatch($_SERVER['REQUEST_METHOD'], processInput($_SERVER['REQUEST_URI']));
} catch (Phroute\Exception\HttpRouteNotFoundException $e) {
var_dump($e);
die();
} catch (Phroute\Exception\HttpMethodNotAllowedException $e) {
var_dump($e);
die();
}
processOutput($response);
的.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} api
RewriteRule ^ /api/index.php [L,R]
# This code needs to be used in order to enable refresh
# and redirects on the Angular routes
RewriteBase /
RewriteRule ^index.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
注意:请记住,我对这个PHP路线概念很新,所以欢迎任何其他建议!
所以我想知道如何正确配置它以使其工作?我没有找到关于这个主题的任何教程,所以对我来说非常困惑。