php - 带有可选参数和正则表达式的路由
问题描述
我将使用单个路由路由此 url:
- www.web.com/some.xml
- www.web.com/some1.xml
- www.web.com/some2.xml
我尝试使用以下代码,找到了网址www.web.com/some1.xml、some2.xml 等,但始终找不到网址www.web.com/some.xml。
Route::get('/{postTypeSlug}{index?}{xml?}', [
'as' => 'root_sitemap_post_detail',
'uses' => 'SingledomainSitemapController@sitemapPostDetail'
])->where('postTypeSlug', "(info-sehat|rubrik)\B")->where('index', "([1-9]|[1-9][0-9]+)\b");
我希望可以找到网址 www.web.com/some.xml 和 some1.xml、some2.xml 等。
解决方案
我没有测试它,但你可能想使用*
而不是+。
a* 0 or more
a+ 1 or more
a? 0 or 1
而对于[1-9]|[1-9][0-9]+
你可能只是使用[1-9]*|[1-9][0-9]*
推荐阅读
- html - 为什么在 React 中悬停时播放或暂停会出错
- laravel - 如何在 Vue 组件中使用 Laravel auth()
- apache-spark - Spark:在每个组中过滤
- python - 计算条件概率时,括号运算符如何在 pandas 中工作?
- amazon-web-services - Redshift Unload:仅在第一个分区中添加标头,不包括其余部分
- antivirus - 从命令行允许文件 Symantec Endpoint Protection
- semantic-web - json-ld:引用模式的详细信息:Person
- javascript - JSON - Select2 数据格式
- javascript - Transfer file between servers
- c# - WPF pass reference of controls to user control