我有一个问题(很明显),我正在使用Laravel 4.1并且我使用Laravel制作了我的网站的V2,V1是一个静态网站(没有php,只有很多html文件和文件夹)。
现在,我想进行301重定向,因为旧用户仍然在书签中使用旧网址,其他网站仍然使用旧网址引用我。 所以当人们通过这些旧网址时,我希望他们可以重定向到新的网址(没问题)?
事实上,当我尝试访问我的V2中的旧网址时,看起来像一个新的路由模式..好的,我会更准确地解释。所以想象我有www.example.com/en/restaurants/,这是我旧网站上餐馆文件夹的路径, 现在我有一条像这样的路线=>
Route::get('{$lang}/{$category}', PostController@getPosts)
我在浏览器中输入www.example.com/en/restaurants/ ..我的路线不起作用..它会显示文件夹内容..
我希望你明白我的意思!
谢谢大家。
答案 0 :(得分:1)
它会在接触您的路线之前提供真实的文件和文件夹。如果您正在使用apache,.htacess将告诉它只重写非实际路径的路径,nginx也是如此。
有一些方法可以覆盖它,但不这样做,因为它会严重影响资产的加载并产生许多令人讨厌的错误。
我建议的是,laravel公共目录中没有原始内容。最好的方法是编译所有URL的列表,并在路由文件底部捕获所有路由,检查它是否在列表中,并相应地重定向。这很麻烦,有点乏味,但老实说,这是最好的选择。也许是配置文件?
<?php
return [
'oldurl' => 'newurl/route'
];