如何定义不区分大小写(路径的一部分)?
示例:
在路线的固定部分使用大写字母不起作用:
我理解如何使用{参数}等参数使用 - > with()使用正则表达式模式,但这对路径的固定部分没有帮助,如上所述。
答案 0 :(得分:5)
这可以通过以下方式定义路线来解决:
Route::get('/{userId}/{profile}')->with('profile', '(?i)profile(?-i)');
更聪明,将其定义为pattern
,然后它也可以在路线组中使用。
Route::pattern('profile', '(?i)profile(?-i)');
Route::get('/{userId}/{profile}');
答案 1 :(得分:0)
添加模式一次仅适用于一条路由,如果您希望所有路由不区分大小写,请将其添加到之前部分的/app/filter.php文件中:
我写了一个要点:https://gist.github.com/samthomson/f670f9735d200773e543
编辑你的app / filters.php以检查路线中的大写字符并将它们重定向到转换后的路线。
答案 2 :(得分:0)
对于那些使用Apache的人,你也可以这样做:
此处 vhost文件的顶部添加
RewriteEngine On
RewriteMap lowercase int:tolower
并在您的 .htaccess
中RewriteCond $1 [A-Z]
RewriteRule ^(.*)$ /${lowercase:$1} [R=301,L]