我有一个由自由开发者使用Laravel 4开发的网站。虽然开发人员已经为每个页面开发了一些标准URL的网站,但我希望能够更改URL中的单词以适应我的每个目标市场。 例如,开发人员创建了一个页面的URL:www.site.com/public/city/vehicles
稍后,我希望能够更改为www.site.com/Rome/Cars或www.site.com/Sydney/bikes
然而,开发人员表示以后不可能更改URL,因为这是Laravel的限制。任何人都可以对此有所了解以及如何做到这一点?
答案 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。
希望你明白。