Laravel: Alias ​​Apache pour les URL avec slash final

J’ai un site internet Laravel dans le répertoire /home/user/Documents/laravel-training .

Je voudrais visiter mon site Web de http://localhost/dev/ ,
J’ai donc défini un alias dans /etc/apache2/sites-enabled/000-default.conf .

Voici mon 000-default.conf :

  ServerName foo.example.net ServerAdmin [email protected] DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined Alias /dev /home/user/Documents/laravel-training/public  Options Indexes FollowSymLinks AllowOverride All Require all granted   

J’ai également ajouté RewriteBase /dev au début de /home/user/Documents/laravel-training/public/.htaccess .

Maintenant, je peux visiter mon site Web avec succès si l’URL ne se termine pas par une barre oblique.

Par exemple, si j’ajoute l’itinéraire suivant:

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

Ensuite, je peux le visiter depuis http://localhost/dev/test .

Mais si mon URL est http://localhost/dev/test/ , le serveur redirige incorrectement ma page vers http://localhost/test et provoque une erreur 404 Not Found.

 Not Found The requested URL /test was not found on this server. Apache/2.4.12 (Ubuntu) Server at localhost Port 80 

Est-ce que quelqu’un sait comment résoudre ce problème?


En réponse au commentaire de Stefano Ortisi:
Je n’ai rien changé d’autre dans .htaccess . Je viens de garder les parameters par défaut.

 RewriteBase /dev   Options -MultiViews  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}]  

Ce n’est pas une erreur qu’il redirige sans la barre oblique finale.

Dans votre public/.htaccess comme vous pouvez le voir, il y a les lignes suivantes:

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

^^^ comme le commentaire indique que cela redirecta une URL avec une barre oblique finale si ce n’est pas un dossier. Si vous supprimez cela, vous le verrez ne vous redirecta pas.