Hi I am laravel beginner and having problem during page navigation.
http://localhost/mylaravel/public/index
In index page I have few items and below href to see the details of that item based on item id.*
<a href="{{route('singleitem',$product->id}}">
Route::get('/single/{id}', 'ProductController@single')->name('singleitem');
Route::get('/index', 'ProductController@index');
Now when I click on item details, I get the below URL which is ok.
http://localhost/mylaravel/public/single/25T8C (here id = 25T8C)
Now from that page when I am clicking Home it’s adding index page end of single [single/index !!!]
<a href="index" class="nav-link">Home</a>
http://localhost/laravel-test/mylaravel/public/single/index
I tried to add a slash but it’s redirected me to
<a href="/index" class="nav-link">Home</a>
http://localhost/index
Here is my .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Any help will be appreciated.
Advertisement
Answer
On live it is just required to pass /index
<a href="/index" class="nav-link">Home</a>
and it will redirect you to
http://yourdomain.com/index
but on the localhost, you have to add the directory name also(Note: on live there will be no folder name. So /index will work there).
<a href="/laravel-test/index" class="nav-link">Home</a>
Or, you have to run laravel through artisan server, then /index will work on your localhost also.
You are facing this issue because when we give / before URL, it concatenates the given URL with the host and on XAMPP we have to concatenate folder name after localhost.