2016-09-26 2 views
1

Я загрузил свой сайт в первый раз на хостинг ipage. Не было папки public_html, а корневая директория была общедоступной, поэтому я загрузил все мои папки веб-сайта и предоставил открытые разрешения для просмотра только моим общедоступным файлам. Теперь моя домашняя страница работает, а остальная часть - нет, и я думаю, что она имеет какое-то отношение к расположению файлов, которые теперь отличаются от локальных, из-за структуры каталогов ipage. Ошибка, которую я получаю, - «Страница не найдена».Загрузил сайт PHP в Интернет, работает только индексная страница

Это пример из моего route.php файла:

Route::get('/', '[email protected]'); 
Route::get('store', '[email protected]'); 

(страница работы, магазин не делает).

Контроллеры Пример:

class PagesController extends MainController 
{ 
public function index() 
{ 
    self::$data['title'] = 'Ayala & Tamar | Home Page'; 
    return view('content.home', self::$data);  
} 


class StoreController extends MainController 
{ 
//Getting dynamic categories 
public function index() 
{ 
self::$data['title'] = 'Ayala & Tamar | Store'; 
self::$data['categories'] = Category::all()->toArray(); 
return view('content.categories', self::$data); 
} 

Все мои Laravel и PHP структура осталась прежней, и находится в главном каталоге проекта, для каких файлов, которые больше не находятся в общей папке, кроме, они непосредственно в основной каталог.

Есть ли у кого-нибудь идеи для решения? Спасибо!

+0

Вы изменили параметры подключения к базе данных? – JoelBonetR

+0

Да, я изменил имя db, имя пользователя и пароль – user3185970

+0

и вы импортировали новую базу данных и задали правильную версию php и параметры на сервере? – JoelBonetR

ответ

3

Установить маршрут, как это, так что ваш файл route.php выглядеть следующим образом

Route::controllers([ 
    'store' => 'StoreController' 
]); 

Route::get('/', '[email protected]'); 

Ваш контроллер

class StoreController extends Controller 
{ 
    public function getIndex(Request $request) 
    { 
    self::$data['title'] = 'Ayala & Tamar | Store'; 
    self::$data['categories'] = Category::all()->toArray(); 
    return view('content.categories', self::$data); 
    } 
} 
+0

Thanks Можете ли вы объяснить разницу в том, как это было? – user3185970

+0

Когда вы определяете route 'store' => 'StoreController', как это, тогда легко вызвать url. например, хранить/добавлять, сохранять/обновлять. Если нет, то вы определяете маршрут «Маршрут :: get ('/ store/add', 'StoreController @ getAdd') или Route :: post ('/ store/add', 'StoreController @ postAdd'); – Komal

+0

@ user3185970 Примите ответ, если это было полезно – Komal

0

С этого первым делом пришла в голову: вы не перенаправляет все запросы в index.php

Проверить .htaccess файл и mod_rewrite расширение, если вы U петь apache, если вы используете конфигурацию сайта nginx check. Он должен правильно перенаправить весь запрос на index.php, иначе ваш запрос не будет работать иначе, чем индекс.

файл .htaccess из свежих Laravel 5,3

RewriteEngine On 

# Redirect Trailing Slashes If Not A Folder... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

# Handle Authorization Header 
RewriteCond %{HTTP:Authorization} . 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

для Nginx вы должны что-то подобное в вашем файле конфигурации сайта:

try_files $uri $uri/ /index.php?$query_string; 

location ~ \.php$ { 
     try_files $uri /index.php =404; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/var/run/php5-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
    } 

конечно конфигурации Nginx может отличаться. Прочтите руководства и настройте их правильно.

Смежные вопросы