web-dev-qa-db-fra.com

laravel l'URL demandée n'a pas été trouvée sur ce serveur

J'ai un noyau Ubuntu 14.04. J'installais mon application Laravel sur ce serveur. Après l'installation, j'ai essayé de définir le répertoire racine sur public. 

Sudo nano /etc/Apache2/sites-available/000-default.conf

Je n'ai que ces options dans le fichier

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port t$
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual Host. For the default virtual Host (this file) this
        # value is not decisive as it is used as a last resort Host regardless.
        # However, you must set it for any further virtual Host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/public/

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${Apache_LOG_DIR}/error.log
        CustomLog ${Apache_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual Host. For example the
        # following line enables the CGI configuration for this Host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=Apache ts=4 sw=4 sts=4 sr noet

J'ai changé la racine du document en

DocumentRoot /var/www/html/public/

Maintenant, lorsque j'ai essayé d'accéder à mon application Laravel, via 123.xxx.xxx.xxx/, la page d'accueil s'affiche et fonctionne correctement. Il obtient aussi toutes les variables GET. Exemple: 123.xxx.xxx.xxx?type=wefwef

Mais quand je vais sur d'autres liens tels que 123.xxx.xxx.xxx/login, cela me donne une erreur

Not Found

The requested URL /login/ was not found on this server.

Apache/2.4.7 (Ubuntu) Server at 104.236.234.85 Port 80

J'ai le routes.php fonctionne bien sur localhost. Mais pas sur ce serveur. Aidez-moi, s'il vous plaît. 

36
user1012181

On dirait que vous devez activer .htaccess en l'ajoutant à votre vhost:

<Directory /var/www/html/public/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Si cela ne fonctionne pas, assurez-vous que mod_rewrite est activé.

N'oubliez pas de redémarrer Apache après avoir apporté les modifications! (service Apache2 restart)

89
lukasgeiter

J'ai résolu en procédant comme suit: Vérifiez s'il existe un module appelé rewrite.load dans votre Apache à l'adresse:

cd /etc/Apache2/mods-enabled/

S'il n'existe pas, exécutez l'extrait suivant:

Sudo a2enmod rewrite

Sinon, modifiez le fichier de configuration Apache pour consolider l'utilisation de "l'URL conviviale".

Sudo nano /etc/Apache2/Apache2.conf

Recherchez le code suivant dans l'éditeur:

<Directory /var/www/> 
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory> 

Changer en: 

<Directory /var/www/> 
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Après cela, redémarrez le serveur Apache via: 

Sudo /etc/init.d/Apache2 restart
25
Lucas Coelho

Commencez par activer a2enmod rewritenext, redémarrez Apache. 

/etc/init.d/Apache2 restart

cliquez ici pour répondre à cette question

19
Mathesh Raj

Sinon, vous pouvez remplacer tout le contenu de votre fichier .htaccess

Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Voir la documentation ici. https://laravel.com/docs/5.8/installation#web-server-configuration

1
F KIng

En plus de toutes les réponses si vous rencontrez toujours une variante du problème, modifiez le fichier .env et définissez APP_URL sur votre nom de domaine, comme suit:

 APP_URL=similar_to_my_avatar_link 
0
resizemyimg.com

Dans le fichier httpd.conf, vous devez supprimer #

#LoadModule rewrite_module modules/mod_rewrite.so

après avoir retiré #, la ligne ressemblera à ceci:

LoadModule rewrite_module modules/mod_rewrite.so

Et Apache redémarre

0
Masum billah

trop tard .. mais pour le bénéficevous pouvez éditer votre fichier .htaccess commenter cette ligne

  #  RewriteRule ^ index.php [L]
0
Ahmed khaled

Assurez-vous que mod_rewrite est activé.

restart Apache

et effacer cookies de votre navigateur pour les relire à .htaccess

0
Miguel Avila R.