Php 索引路由上的可选参数

Php 索引路由上的可选参数,php,slim,Php,Slim,我有一个非常简单的应用程序,其中我打算选择性地接受索引路由上的参数,以便用户可以转到http://example.com/或http://example.com/somethingrandom我希望能够捕获somethingtrandom作为可选参数,但我运气不好。这是我的路线: $app -> get('/(:random)', function($random=null) use($app) { ... do some stuff }); 根据,需要将/放在括号内。因此,请尝

我有一个非常简单的应用程序,其中我打算选择性地接受索引路由上的参数,以便用户可以转到
http://example.com/
http://example.com/somethingrandom
我希望能够捕获
somethingtrandom
作为可选参数,但我运气不好。这是我的路线:

$app -> get('/(:random)', function($random=null) use($app) {
    ... do some stuff
});
根据,需要将
/
放在括号内。因此,请尝试:

$app -> get('(/:random)', function($random=null) use($app) {
    ... do some stuff
});
根据,需要将
/
放在括号内。因此,请尝试:

$app -> get('(/:random)', function($random=null) use($app) {
    ... do some stuff
});

因此,实现这一点并非缺乏对slim框架的理解,而是与我在OS X上的默认apache2设置有关。在OS X的更高版本中,默认情况下不启用PHP。这不是我的问题,而是原因之一。我按照教程进行操作,以确保我的设置是正确的。除了这篇文章之外,我还必须取消加载
mod_rewrite
模块的行的注释

然后我在
/etc/apache2/extra/httpd vhosts.conf

<VirtualHost *:80>
  DocumentRoot "/Users/tbm/Sites/example.com"
  ServerName shor.ty
  <Directory "/Users/tbm/Sites/example.com">
    Options FollowSymLinks
    AllowOverride All
  </Directory>
</VirtualHost>
完成所有这些之后,我就能够使用以下语法解决我的问题

$app -> get('/(:random)', function($random=null) use($app) {
  ... do some stuff
});

现在的区别是,当我访问
/some_string
页面时,apache被告知重写请求并运行
index.php
,然后调用slim来找到正确的路由并呈现正确的页面。我希望这是有意义的

因此,这项工作不是因为不了解slim框架,而是因为我在OS X上的默认apache2设置。在OS X的更高版本中,默认情况下,未启用PHP。这不是我的问题,而是原因之一。我按照教程进行操作,以确保我的设置是正确的。除了这篇文章之外,我还必须取消加载
mod_rewrite
模块的行的注释

然后我在
/etc/apache2/extra/httpd vhosts.conf

<VirtualHost *:80>
  DocumentRoot "/Users/tbm/Sites/example.com"
  ServerName shor.ty
  <Directory "/Users/tbm/Sites/example.com">
    Options FollowSymLinks
    AllowOverride All
  </Directory>
</VirtualHost>
完成所有这些之后,我就能够使用以下语法解决我的问题

$app -> get('/(:random)', function($random=null) use($app) {
  ... do some stuff
});

现在的区别是,当我访问
/some_string
页面时,apache被告知重写请求并运行
index.php
,然后调用slim来找到正确的路由并呈现正确的页面。我希望这是有意义的

这不起作用。有了这个,当我访问我的索引路由时,我得到一个404。我得到一个404如果你有类似于
/subdir(/:random)
的东西,它能工作吗?这可能只是Slim:-/Ok的一个限制。我终于明白了<代码>获取('/(:随机)“,…很管用。然而,这只是成功的一半。事实证明,在OS X上默认安装apache2时,我有一些东西需要配置。我将把解决方案写成一个新的答案。这不管用。有了它,当我访问我的索引路由时,我会得到一个404。我得到一个404。如果你有类似
/subdir的东西,它能工作吗?”(/:random)
?这可能只是Slim:-/Ok的一个限制。最终解决了。
get('/(:random)“,…
很管用。然而,这只是成功的一半。事实证明,在OS X上默认安装apache2时,我有一些东西需要配置。我将把解决方案写成一个新的答案。这不管用。有了它,当我访问我的索引路由时,我会得到一个404。我得到一个404。如果你有类似
/subdir的东西,它能工作吗?”(/:random)
?这可能只是Slim的一个限制:-/Ok。最终解决了。
get('/(:random)…
很有效。但是这仅仅是战斗的一半。事实证明,在OS X上默认安装apache2时,我有一些东西需要配置。我将把这个解决方案作为一个新的答案来写