Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
да, я создавал уже страницу в resources/views/errors/404.blade.php но в данному случаи браузер говорит "Сайт пока не может обработать этот запрос"
В чем может быть причина?
вообщем все получилось но теперь другой вопрос возник.
Как бы мне в данном случаи свою собственную страницу ошибки отобразить?
У меня она уже есть, я её прописывал в handler.php
if ((strpos($_SERVER['REQUEST_URI'], 'index.php')) == 'false') {
abort(404);
}
вот так заработало.
ваша строка делает так что index.php не проходят, а без него работает. Кстати, главная страница должна быть исключением и работать без index.php то есть просто /
сейчас заметил что через index.php и так (по умолчанию) работает.....)
То есть в итоги мне нужно только сделать так чтоб не работало без index.php? а как перехватить все запросы без index.php?
Если трафика немного или есть возможность поправить купленные ссылки, то лучше по-человечески сделать и подождать переиндексации.
Если это не вариант, то можно тупо использовать URL вида
site.com/index.php/my/page/
В таком случае index.php просто будет убран из адреса и routes можно использовать стандартные -
'/my/page'
Правда в таком случае придется вручную везде добавлять index.php/ при построении ссылок
<link href="{{ $indx.'css/myStyleSheet.css' }}" ....>
Еще, я бы прописал в главном контроллере или middleware проверку на присутствие index.php в URL. Если index.php нет, то принудительно редиректить на 404. Если этого не сделать, ПС могут дубли найти и наложить санкции.
В том то и дело что уже и трафик есть и ссылки не поменять)
Может быть это можно сделать через файл htaccess?
когда в роуте прописываю вот так Route::get('/index.php/{slug}', 'IndexController@post');
Отображается в браузере No input file specified.
Я переношу сайт с joomla. сайт уже проиндексирован и имеет трафик с поиска поэтому важно сохранить адреса. Нужно чтоб все страницы шли через index.php, по примеру mysite.com/index.php/....
Подскажите пожалуйста решение!
не понял что вы имеете ввиду. можно подробней?
После того как сайт полностью готов и опубликован на хостинг что нужно сменить?
1) в env сменить APP_ENV=production и APP_DEBUG=false
Это все или еще что-то ?
Мне нужно такой путь сделать index.php/название поста.
Но когда в роуте прописываю вот так Route::get('/index.php/{slug}', 'IndexController@post');
Отображается в браузере No input file specified.
Скажите как настроить htaccess? или это не в нём дело!
Как сделать так чтоб страница ошибки в Laravel 5 перед тем как отобразится проходила через контроллеры? Иначе говоря мне нужно чтоб страница 404 перед отображением получила значение из БД для того чтоб их потом отобразить.
Или как проверить наличие маршрута в роутах?
Вопрос решен! Тема закрыта!
мой хостинг не даёт такую возможность, класть что-либо выше публичной папки
Не понял что вы имеете ввиду. поясните пожалуйста.
Опубликовал сайт на хостинге.
Прописал такое вот в корневом файле htaccess,
RewriteEngine On
DirectoryIndex /public/index.php
#RewriteRule ^(.+) $1 [L]
#RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
#RewriteRule ^(.+) /public/$1 [L]
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
В файле папке public в файле htaccess прописано такое
<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
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>
Сейчас все отлично работает и без public, но с public тоже работает и все страницы сайта таким образом дублируются. Вопрос в том как отключить дублирование адресов с public. ?!?
Работала, но почему-то что-то нарушилось... хз, может что-то сбилось.
Вот код
public function index()
{
$this->data['post'] = \App\post::where(['active' => '1'])->orderBy('rating','desc')->take(9)->get();
$this->data['postpaginate'] = \App\post::where(['active' => '1'])->orderBy('rating','desc')->paginate(9);
return view('app.index', $this->data);
}
$this->data['postpaginate'] - сюда все нормально приходит.
В шаблоне
div class="paginate">
@foreach ($postpaginate as $item)
{{ $item->name }}
@endforeach
<?php echo $postpaginate->render(); ?>
</div>
Кнопки пагинации появляются и столько сколько нужно, но при переходе на любую из страниц отображаются данные с первой страницы. Так было не всегда, она была настроена и работала хорошо, затем что-то видимо случайно пошло не так и теперь не работает.
Все решено! Всем спасибо! Модераторы удалите тему!
Я получаю значение в массив, так вот
$this->data['game'] = \App\game::where(['active' => '1','slug' => $slug])->take(1)->get();
return view('index', $this->data);
В шаблоне хочу получить значение путём {{ $game->title }} и т.д. выходит ошибка.
Для того чтоб получить нужно только через форыч прогонять. тогда норм.
Хотя смотрю некоторые сразу получают значение из массива без форыча, почему у меня не получается?
Всем спасибо за ответы!
Для установки использую код
public function cook() {
$response = new \Illuminate\Http\Response();
$response->withCookie(cookie('Test', 'test', '83488'));
return view('welcome');
}
Мне для установки нужно её в return вставить. Вопрос в том как это прописать если там еще view нужно вставить.
Страницы 1