2014-01-23 5 views
2

Я использую рамки Laravel для моего сайта. В моей навигации у меня есть такие элементы li.Laravel URL :: route and index.php

<li class="{{ URL::current() == URL::route("mainpage") ? "active" : "" }}"><a href="{{ URL::route("mainpage") }}">Home</a></li> 
<li class="{{ URL::current() == URL::route("portfolio") ? "active" : "" }}"><a href="{{ URL::route("portfolio") }}">Portfolio</a></li> 

Я использую URL::route, чтобы получить ссылки на именованные маршруты в моем routes.php и использовать метод current, чтобы проверить, если страница является активной или нет, и добавить active класс к элементу в этом случае.

Это все работает отлично, если пользователь не имеет index.php в пути. Если это в URL-адресе, то ссылки будут выглядеть как domain.com/index.php/portfolio, что не очень хорошо.

Как мне заставить ссылки не включать index.php?

+0

Какую версию Laravel вы используете в настройках? –

ответ

0

Ну, вы можете убедиться, что пользователь всегда входит на сайт без index.php в URL-адресе. Это можно сделать с перенаправлением перемирия, поэтому вам нужно будет изменить свой .htaccess и добавить перенаправление перемирия.

RewriteRule ^index.php/(.*)$ /$1 [R=302,L] 
+0

Спасибо за комментарий. Я использую IIS, так что это не сработает. Не могу ли я просто создать ссылку правильно? – MikkoP

0

Проверьте файл /app/config/app.php. Если он содержит

'index' => 'index.php' 

удалите index.php (оставьте значение пустым). Помогает ли это?

+1

Спасибо за ответ. У моего конфигурационного файла нет этой записи. – MikkoP

+0

Этот вариант находится в нижних версиях laravel 4 – cheloncio