Goodevening всех программистов!
Несколько дней назад я купил домен + хостинг. Я сделал локальный проект с Laravel 4.2.x и хотел переключить его на свой онлайн-сервер. Я заметил, что мне нужна версия PHP 5.5 для запуска этой версии Laravel, поэтому я изменил это в своем файле .htaccess.
Кажется, что сейчас все правильно, но это не правильная струя. Де ссылки (href) на другие страницы не будут работать! Каждый раз, когда я перенаправлял на URL-адрес без URI ‘/’, я получал страницу с сообщением о том, что сервер не может найти этот документ.
Мои файлы:
// routes.php
<?php
Route::controller('/', 'PageController');
//Route::get('/', 'PageController@getIndex');
//Route::get('/contact', 'PageController@getContact');
PageController.php
<?php
class PageController extends BaseController {
protected $layout = 'master.master';public function getIndex() {
return View::make('pages.index');
}
public function getContact() {
return View::make('pages.contact');
}
}
И мои взгляды: все правильно, потому что можно получить доступ к странице контактов по URI ‘/’, но я просто не могу получить доступ к страницам по другим URI.
Заранее спасибо!
Ваш код в порядке, но маршрутизация чувствительна к регистру. Так http://example.com/Contact это не то же самое, что http://example.com/contact
Первый (верхний регистр C) должен завершиться с ошибкой «Метод контроллера не найден». Второй (строчная c) должен работать.
Если это не проблема чувствительности к регистру, значит, ваш файл .htaccess неверен, отсутствует или не поддерживается на вашем веб-хосте. Вот пример хорошего файла .htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Других решений пока нет …