2017-10-12 2 views
0

Je suis avec un problème très similaire à this another question, mais les solutions fournies dans ce fil ne m'a pas aidé.Routes Laravel dans l'hébergement partagé ne fonctionne pas correctement

J'ai fait Deploy de mon application Laravel à un service d'hébergement partagé en utilisant ce guide (BTW, le guide est très similaire à one of the answers de la question liée)

Ci-dessous est mes itinéraires/web.php fichier

<?php 

/* 
|-------------------------------------------------------------------------- 
| Web Routes 
|-------------------------------------------------------------------------- 
| 
| Here is where you can register web routes for your application. These 
| routes are loaded by the RouteServiceProvider within a group which 
| contains the "web" middleware group. Now create something great! 
| 
*/ 

Route::get('/', function() { 
    return view('welcome'); 
}); 

Auth::routes(); 

Route::get('/home', '[email protected]')->name('home'); 

Route::group(['prefix' => 'law', 'middleware' => ['ability:superadministrator,read-users|create-users']], function() { 

    Route::get('/search', '[email protected]'); 
    Route::get('/new', ['middleware' => ['permission:create-users'], 'uses' => '[email protected]']); 

    Route::get('/find', '[email protected]'); 
    Route::get('/edit/{id}', '[email protected]'); 

    //region post 
    Route::post('/new', ['middleware' => ['permission:create-users'], 'uses' => '[email protected]']); 
    Route::post('/search', ['middleware' => ['permission:read-users'], 'uses' => '[email protected]']); 
    /*Route::post('/modify', ['middleware' => ['permission:create-users'], 'uses' => '[email protected]']);*/ 
    //endregion 
}); 

Route::group(['prefix' => 'user', 'middleware' => ['ability:superadministrator,read-users|create-users']], function() { 
    //..similar to the previous one 
}); 
//some other route groups 

Le problème est que je peux accéder à la page d'accueil et à la page de connexion. Après l'authentification, je vais à la page d'accueil et le problème commence. Chaque autre route que j'essaie (comme mydomain.net/law/search) me laisse à nouveau à la page d'accueil dans une sorte de boucle infinie. La route de déconnexion fonctionne également bien. Ce qui est étrange, c'est que si j'essaie une route inexistante comme mydomain.net/blah, je vais la connaissance RouteNotFound/"NotFoundHttpException" de Laravel Framework.

Je ne reçois aucune erreur dans php log ou dans ma console de navigateur. Le javascript fonctionne bien.

Je contacte le support du service hôte pour m'assurer qu'Apache avait le mod_rewrite activé et apparemment il l'est.

Je l'ai cherché sur google pendant environ 3 heures et creuser plus profond ici dans SO, mais tout m'a aidé à comprendre le problème. Un conseil?

est le fichier .htaccess ci-dessous si elle aide de quelque façon:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    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}] 
</IfModule> 

MISC:

  • PHP 7.1
  • Laravel 5.4
  • The composer.json pour référence
  • I » m en utilisant le Laravel AdminLTE et le menu de la barre latérale ne fonctionne pas correctement. Je pense que c'est le même problème qui cause les deux problèmes. Mon fichier .env n'a rien de spécial, mais
+1

est mod_rewrite activé? – ggdx

+0

Selon le gars de soutien, oui, mais je ne peux pas m'assurer de ma vue du système – James

+0

'composer dump-autoload' avant que vous déployé? – ggdx

Répondre

0

Ajouter dans votre fichier .htaccess

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php/$1 [L] 

Cette règle teneur en charge interne de REQUEST_URI au index.php

+0

Je n'ai aucun effet, mais merci quand même. – James