2016-09-26 1 views
1

J'ai téléchargé mon site pour la première fois à un hébergement ipage. Il n'y avait pas de dossier public_html, et le répertoire racine est en fait public, donc j'ai téléchargé tous mes dossiers de site Web, et j'ai donné des autorisations de visualisation ouvertes uniquement à mes fichiers publics. Maintenant, ma page d'accueil fonctionne et le reste ne l'est pas et je pense que cela a quelque chose à voir avec l'emplacement des fichiers qui est maintenant différent de quand il était local, à cause de la structure des répertoires ipage. L'erreur que je reçois est 'Page non trouvée'.téléchargé un site PHP sur le web, seule la page d'index fonctionne

Voici un exemple de mon fichier route.php:

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

(œuvres de la page d'accueil, magasin ne fonctionne pas).

Contrôleurs exemple:

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); 
} 

Toutes ma structure Laravel et PHP est resté le même et est dans le répertoire principal du projet, à l'exception des fichiers publics qui ne sont plus dans le dossier public, ils sont directement dans la répertoire principal.

Quelqu'un a-t-il une idée de solution? Merci!

+0

Avez-vous modifié les paramètres de connexion à la base de données? – JoelBonetR

+0

Oui, j'ai changé le nom de base de données, le nom d'utilisateur et le mot de passe – user3185970

+0

et vous avez importé la nouvelle base de données et définir la version et les paramètres php appropriés sur le serveur? – JoelBonetR

Répondre

3

itinéraire défini comme celui-ci, de sorte que votre fichier route.php ressembler à ce

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

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

Votre contrôleur

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

Merci Pouvez-vous expliquer la différence par rapport à ce que c'était? – user3185970

+0

Lorsque vous définissez route 'store' => 'StoreController' comme ceci, il est facile d'appeler l'URL. par exemple, stocker/ajouter, stocker/mettre à jour. Si ce n'est pas le cas, vous définissez route "Route :: get ('/ store/add', 'StoreController @ getAdd'), ou Route :: post ('/ store/add', 'StoreController @ postAdd');" – Komal

+0

@ user3185970 Veuillez accepter la réponse si elle vous a été utile – Komal

0

De cette première chose est venu dans mon esprit: vous ne redirige pas toutes les demandes index.php

Vérifiez .htaccess fichier et mod_rewrite l'extension si vous êtes u chantez apache, si vous utilisez nginx vérifiez la configuration du site. Il doit rediriger correctement toutes les requêtes vers index.php sinon votre requête ne fonctionnera pas autre que l'index.

fichier .htaccess de frais 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}] 

pour nginx vous devez quelque chose comme ceci dans votre fichier de configuration du site:

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; 
    } 

bien sûr une configuration nginx peut être différent. Lisez les manuels et configurez-les correctement.