Laravel 路由如何大小写不区分

php中文网
发布: 2016-06-06 20:44:38
原创
2735人浏览过

<code class="lang-php">//D:/website/zbphp.com/www/Laravel/app/routes.php
Route::group(array('prefix'=>'admin'),function(){

    Route::get('login','admin\HomeController@login');
});
</code>
登录后复制

当网址是 http://localhost/ADMIN/LOGIN/ 报错无法访问
如何大小写不区分

回复内容:

<code class="lang-php">//D:/website/zbphp.com/www/Laravel/app/routes.php
Route::group(array('prefix'=>'admin'),function(){

    Route::get('login','admin\HomeController@login');
});
</code>
登录后复制

当网址是 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(更非入口文件).

<code>App::before(function($request)
{
    $fullUrl = $request->fullUrl();
    if(preg_match('@[A-Z]@', $fullUrl))
        return Redirect::to(Str::lower($fullUrl));

});
</code>
登录后复制

还有另一种方法,就是错误出现时,再进行大小写转换
这个得在app/start/global.php

<code>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));

});
</code>
登录后复制

其实这两种方法都是下下策...

还有,为什么我说server.php不是入口文件呢?

因为这是 PHP's internal web server, 详细情况你可以参考,我就不多说了.

http://stackoverflow.com/questions/16919920/what-is-the-purpose-of-the-server-php-file-in-laravel-4

ChatBA
ChatBA

AI幻灯片生成工具

ChatBA 74
查看详情 ChatBA

你要是用的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));
}

相关标签:
路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号