如何更改使用Laravel开发的站点中的URL?

时间:2016-02-29 03:00:18

标签: php laravel laravel-4

我有一个由自由开发者使用Laravel 4开发的网站。虽然开发人员已经为每个页面开发了一些标准URL的网站,但我希望能够更改URL中的单词以适应我的每个目标市场。 例如,开发人员创建了一个页面的URL:www.site.com/public/city/vehicles

稍后,我希望能够更改为www.site.com/Rome/Cars或www.site.com/Sydney/bikes

然而,开发人员表示以后不可能更改URL,因为这是Laravel的限制。任何人都可以对此有所了解以及如何做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以通过编辑Apache2配置文件从Laravel 4网站路径中删除“/ public /”。

此文件可以位于不同的位置(取决于您的服务器设置),但应该很容易找到。例如。对于AWS EC2(Ubuntu 14.04),它是/etc/apache2/sites-available/000-default.conf

您希望将此代码段放在该配置文件中:

DocumentRoot /var/www/YOUR_PATH/public
<Directory "/var/www/YOUR_PATH/public">
    AllowOverride ALL
</Directory>

请记得致电service apache2 restart,以便您的服务器识别并提供此更新。

此外,根据您的开发者构建网站的方式,您可能还需要更新Laravel routing file

作为参考,它应该看起来像这样(app / Http / routes.php): Route::get('ajax/support/{city}/{vehicle}', 'MyController@MyMethod');

然后你会有一个像这样的匹配方法(app / Http / Controllers / MyController.php):

class MyController extends Controller
{
   public function MyMethod(Request $request, $city, $vehicle)
   {
        // You can access $city and $vehicle here.
   }
}

答案 1 :(得分:0)

为什么不可能?如果你愿意,网址可以让我变得动态。使用路线

Route::get('/city/{slug}/{slug}',array('as'=>'city.vehciles','uses'=>'yourcontroller@yourmethod'));

这将输出:

       www.site.com/city/Rome/Cars
     //if public folder is removed from url .
//Here `Rome` and `cars` are dynamic and the value comes as per the slug value from database. 

在上面的路线中slug是我可以动态的东西。在您添加车辆的仪表板中添加车辆时,只需保留一些地方即可添加slug。

另外,如果您想了解更多内容,请参阅此doc

希望你明白。