Php 将尾部斜杠附加到Laravel 4中的url
简单的问题,但我找不到任何有效的答案:Php 将尾部斜杠附加到Laravel 4中的url,php,laravel,laravel-4,Php,Laravel,Laravel 4,简单的问题,但我找不到任何有效的答案: 如何将尾部斜杠附加到Laravel4中的url?编辑:正如timgws所提到的,此解决方案在Laravel4.1中不再有效+ 如果在bootstrap/start.php中注释掉第16行 它不应该再重定向到没有斜杠的URL 然后可以重做布线以显示尾部斜线,如: Route::get('login/', function() { // etc 如果您使用的是Laravel4.0(not4.1),那么应该在bootstrap/start.php()中注释掉
如何将尾部斜杠附加到Laravel4中的url?编辑:正如timgws所提到的,此解决方案在Laravel4.1中不再有效+ 如果在bootstrap/start.php中注释掉第16行 它不应该再重定向到没有斜杠的URL 然后可以重做布线以显示尾部斜线,如:
Route::get('login/', function() { // etc
如果您使用的是Laravel4.0(not4.1),那么应该在bootstrap/start.php()中注释掉第16行 Laravel 4.1已删除
RedirectIftRailingFlash
,因为它现在可以在.htaccess
文件中进行控制(一直都应该如此!)
您还可能希望更改vendor/laravel/framework/src/illumb/Routing/UrlGenerator.php
的末尾加一个斜杠
public function to($path, $parameters = array(), $secure = null) {
// ...
return trim($root.'/'.trim($path.'/'.$tail, '/'), '/') . '/';
}
更改此代码后,模板和使用URL生成器的代码(例如
URL::to()
)现在将生成URL,URL末尾带有一个尾随斜杠,这将在模板中为您节省一个额外字符 何时:在您的路由中,或者当您生成URL时?我的路由定义为不带/在结尾,因为Laravel总是重定向到不带URL的URL,所以路由不会被命中。实际上,我的一条路线只需要一个拖尾斜杠,但这意味着每次文件更新时我们都必须更改它。那么,请向Laravel提交一份错误报告。Laravel中的代码有很多部分都假设永远不会有尾随斜杠。我最终创建了四个类,它们继承自illumb\Foundation\Application
,illumb\Http\Request
,illumb\Routing\RoutingServiceProvider
,和分别照亮\Routing\UrlGenerator
。它们在不同的非全局命名空间中具有相同的名称。我覆盖了illumb\Foundation\Application::requestClass
,illumb\Foundation\Application::registerRoutingProvider
,illumb\Http\Request::url
,illumb\RoutingServiceProvider::registerUrlGenerator
,以及illumb\Routing\UrlGenerator::to
。我还修改了“.htaccess”文件中的重写。@TylerCrompton,您是否有可能在GitHub上为世界其他地方共享您的代码,并将其作为答案发布?
//$app->redirectIfTrailingSlash();
public function to($path, $parameters = array(), $secure = null) {
// ...
return trim($root.'/'.trim($path.'/'.$tail, '/'), '/') . '/';
}