使用.htaccess覆盖Laravel路由

使用.htaccess覆盖Laravel路由,.htaccess,laravel-4,.htaccess,Laravel 4,嘿,伙计们,我开发了一个按城市和州分组的学校数据库,但我把城市这个词放在了路线之前 所以现在每个url都像x.com/cities/city\u name/state\u name/school\u name 我的路线就像 Route::get('cities/{cityName}') 但是现在我想删除这个词,因为搜索引擎优化。当我从我的routes.php中删除cities word时,我的其他页面不起作用(管理员,关于我们) 所以我想也许我可以用htaccess隐藏cities这个词,有可

嘿,伙计们,我开发了一个按城市和州分组的学校数据库,但我把城市这个词放在了路线之前

所以现在每个url都像x.com/cities/city\u name/state\u name/school\u name

我的路线就像

Route::get('cities/{cityName}')
但是现在我想删除这个词,因为搜索引擎优化。当我从我的routes.php中删除cities word时,我的其他页面不起作用(管理员,关于我们)


所以我想也许我可以用htaccess隐藏cities这个词,有可能吗?如果是,我怎么做

我知道这不是你喜欢的答案,但更多的是作为对未来项目的警告:使用命名路由

如果你有自己的路线,说:

Route::get('cities/{cityName}', array('as' => 'city', 'uses' => 'CityController@city'));
您已经使用提供的任何方法在视图中创建了管线:

route('city', array('cityName' => 'New York'));
form_open(array('route' => array('city', 'New York'));
URL::route('city', array('cityName' => 'New York'));
现在,您不需要在视图中更改任何内容,只需更改路线本身即可:

Route::get('cities', array('as' => 'city', 'uses' => 'CityController@city'));
忘记其余的(即使是现在缺少的参数。我知道,它看起来并不完美…)

如果您仍想使用.htaccess路径,可以尝试:

^cities/(.+)/(.+)/(.+)$ /cities/$2/$3 [L]

您应该在源代码库中对其进行更改,以使其保持简单。更改其他页面以适应新路由,这次使用命名路由生成
链接
。我不想更改大量视图文件:(