跳转到主内容
极星编程网:以代码为星,赴技术山海!

Laravel 路由如何大小写不区分

//D:/website/zbphp.com/www/Laravel/app/routes.php Route::group(array('prefix'=>'admin'),function(){ Route::get('login','admin\HomeController@login'); });
当网址是 http://localhost/ADMIN/LOGIN/ 报错无法访问 如何大小写不区分 回复内容:
//D:/website/zbphp.com/www/Laravel/app/routes.php Route::group(array('prefix'=>'admin'),function(){ Route::get('login','admin\HomeController@login'); });
当网址是 http://localhost/ADMIN/LOGIN/ 报错无法访问 如何大小写不区分 强制对来路url全部转为小写,在主入口文件 server. php 里面可以操作。 @kankana 牛逼,服! 这个没啥好方法. 要嘛,你定义route使用的是pattern 参考这里 http://stackoverflow.com/questions/21731151/ laravel -case-insensitive-routes 要嘛,想ls说的, 转换为小写. 处理这类(route)事情的正确文件是app/filters.php 而不是server.php(更非入口文件).
App::before(function($request) { $fullUrl = $request->fullUrl(); if(preg_match('@[A-Z]@', $fullUrl)) return Redirect::to(Str::lower($fullUrl)); });
还有另一种方法,就是错误出现时,再进行大小写转换 这个得在app/start/global.php
App::error(function(Symfony\Component\HttpKernel\Exception\NotFoundHttpException $exception, $code) { $fullUrl = Request::fullUrl(); if(preg_match('@[A-Z]@', $fullUrl)) return Redirect::to(Str::lower($fullUrl)); });
其实这两种方法都是下下策... 还有,为什么我说server.php不是入口文件呢? 因为这是 PHP's internal web server, 详细情况你可以参考,我就不多说了. http://stackoverflow.com/questions/16919920/what-is-the-purpose-of-the-server-php-file-in-laravel-4 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 你要是用的apache/nginx来运行laravel,你必须指向public/index.php,而非server.php. 所以你要是向ls所说,将这些操作直接修改在server.php, 在生产环境中(nginx/apache)是不可能起效的. 对了,
artisan serve
这个命令就是可以启动 PHP's internal web server, 这时server.php就是入口文件了. 这命令文件Illuminate\Foundation\Console\ServeCommand.php
passthru('"'.PHP_BINARY.'"'." -S {$host}:{$port} -t \"{$public}\" server.php");
extend Router class 重写这个method应该就可以了 protected function addRoute($methods, $uri, $action) { return $this->routes->add($this->createRoute($methods, strtolower($uri), $action)); }

相关文章