Laravel 7 — Как удалить URL-адреса с косой чертой в конце из моего приложения?

#php #laravel #.htaccess #redirect

#php #laravel #.htaccess #перенаправление

Вопрос:

Я уже пытался изменить файл .htaccess, попробовал несколько решений для этого, ничего не работает. Всякий раз, когда я добавляю косую черту в конце к URL, открывается другая страница, чего не должно происходить, добавление косой черты в конце к URL должно перенаправлять его на URL без косой черты в конце. Я попробовал следующие решения:

Решение 1

Решение 2

Чего я хочу достичь, так это http://127.0.0.1:8080/login / должен быть перенаправлен на http://127.0.0.1:8080/login для каждого URL-адреса в моем приложении.

public /.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
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [R=301,L]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
  

routes/web.php

 <?php

use IlluminateSupportFacadesRoute;

// Navigation Menu
Route::get('advisor', 'AdvisorController@index');
Route::get('investment', 'InvestmentController@index');
Route::get('investor', 'InvestorController@index');
Route::get('product', 'ProductController@index');
Route::get('rate', 'RateController@index');
//  Stop registration other functions
 Auth::routes([
    'register' => false, // Registration Routes...
    'reset' => false, // Password Reset Routes...
    'verify' => false, // Email Verification Routes...
  ]);
// Login
Route::get('/', function () { 
  return redirect('login');
});
// Dashboard
Route::get('/home', 'HomeController@index')->name('home');
//admin users
Route::resource('/admin/users', 'AdminUsersController', ['except' => ['show', 'create', 'store']]);
  

скриншоты ошибок:

Без косой черты URL-адрес моего приложения:

Теперь, если я добавлю к URL-адресу косую черту в конце, я получу это:

Ответ №1:

Наконец, я смог сделать это с помощью промежуточного программного обеспечения, редактирование .htaccess каким-то образом не работает локально или не работает в моем приложении, в любом случае, проверьте решение ниже:

 if (preg_match('/. /$/', $request->getRequestUri()))
 {
    return Redirect::to(rtrim($request->getRequestUri(), '/'), 301);
 }
  

ссылка
здесь