Solution
The solution was found thanks to @Gert B.
Simply add to your Laravel application any virtual host (I added for mine) laravel1.test
How to add Virtual host: Go to C:WindowsSystem32driversetchosts
add line:
127.0.0.1 laravel1.test (or your virtual host name)
And add this to your vhosts(in case of using xampp) in C:xamppapacheconfextra httpd-vhosts
<VirtualHost *:80> ServerName www.laravel1.test ServerAlias laravel1.test DocumentRoot "C:xampphtdocsLaravel1public" <Directory "C:xampphtdocsLaravel1public"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... # Apache 2.4 Require all granted ## Apache 2.2 # Order allow,deny # Allow from all </Directory> </VirtualHost>
I can’t pass the problem with routing in Laravel 8.5 framework. I know there have been many requests about this problem so far but any of given solutions didnt help in my case. I will show Frontend code, since backend is the same thing and also doesnt work. Right now, the only thing that works is index.php.
I know thanks to newest Laravel all bugs are hidden under simple error 404.
I already tried:
- Changing in apache/conf/httpd solution AllowOverride All
- Clearing whole cache and routes cache
- Any possible misspells in code
Still, without any working anwser.
My FrontendController at app/Http/Controllers
namespace AppHttpControllers; use IlluminateHttpRequest; class FrontendController extends Controller { public function index() { return view('frontend.index'); } public function object() { return view('frontend.object'); } public function article() { return view('frontend.article'); } public function person() { return view('frontend.person'); } public function room() { return view('frontend.room'); } public function roomSearch() { return view('frontend.roomsearch'); } }
My web.php at app/routes
use IlluminateSupportFacadesRoute; use AppHttpControllersFrontendController; ##Frontend routes Route::get('/','FrontendController@index')->name('index'); Route::get('/object','FrontendController@object')->name('object'); Route::get('/article','FrontendController@article')->name('article'); Route::get('/person','FrontendController@person')->name('person'); Route::get('/room','FrontendController@room')->name('room'); Route::get('/roomSearch','FrontendController@roomsearch')->name('roomSearch'); ##Backend routes Route::group(['prefix'=>'admin'],function(){ Route::get('/','BackendController@index')->name('adminHome'); Route::get('/cities','BackendController@cities')->name('cities'); Route::get('/myObjects','BackendController@myobjects')->name('myObjects'); Route::get('/profile','BackendController@profile')->name('profile'); Route::get('/saveObject','BackendController@saveobject')->name('saveObject'); Route::get('/saveRoom','BackendController@saveroom')->name('saveRoom'); });
.htacces file in app/public
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> Options +FollowSymlinks RewriteEngine On # Redirect Trailing Slashes... RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
My routes image
Advertisement
Answer
Solution
The solution was found thanks to @Gert B.
Simply add to your Laravel application any virtual host (I added for mine) laravel1.test
How to add Virtual host: Go to C:WindowsSystem32driversetchosts
add line:
127.0.0.1 laravel1.test (or your virtual host name)
And add this to your vhosts(in case of using xampp) in C:xamppapacheconfextra httpd-vhosts
<VirtualHost *:80> ServerName www.laravel1.test ServerAlias laravel1.test DocumentRoot "C:xampphtdocsLaravel1public" <Directory "C:xampphtdocsLaravel1public"> # use mod_rewrite for pretty URL support RewriteEngine on # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # use index.php as index file DirectoryIndex index.php # ...other settings... # Apache 2.4 Require all granted ## Apache 2.2 # Order allow,deny # Allow from all </Directory> </VirtualHost>