如果你说下面的控制器结构
<?PHP namespace app\controllers; use Yii; use yii\web\Controller; /** * Test controller */ class TestController extends Controller { public function actionMyaction(){ ... //action logic } public function actionMyAction(){ ... //action logic } }
可以使用路径example.com/test/myaction访问第一条路线
每个Yii 1.x逻辑的第二条路线应该可以从路径example.com/test/myAction访问
在Yii2.x路由中使用连字符结构,只能从example.com/test/my-action访问
有没有办法在Yii2中启用使用camelCase结构的路由,最好不用路由类扩展?
这是重要的,因为它打破了所有的链接(当然是在互联网上)向后兼容性,因此Yii1.x应用程序永远不能迁移到Yii2.x,即使代码被完全重写.这个变化的原因是什么?
我也曾经提过这个改变,但是最终我发现它使URL更容易阅读.我不确定在Yii1中有一个区分大小写的路线,在Yii2中,我没有这个问题(或是一个问题的印象)了.
我不知道确切的原因,但我可以告诉你,对于SEO,最好是 – 分开单词而不是一个大字.
当我在yii2中重写了一个应用程序时,我把url的所有老路线放在我需要维护的路由器中.
'urlManager' => [ 'class' => 'yii\web\UrlManager','enablePrettyUrl' => true,'showScriptName' => false,'rules' => [ ................................................. 'site/registerInterest' => 'site/register-interest',................................................. ],],
所以我的旧链接现在工作很好.如果你想从旧的路线到新的路线,以保持SEO果汁,你也可以在.htaccess中设置301重定向.