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时,我有一些东西需要配置。我将把这个解决方案作为一个新的答案来写