Промежуточное ПО Laravel перед маршрутом WordPress - PullRequest
0 голосов
/ 09 июля 2019

У меня есть установка WordPress внутри проекта Laravel. Он находится в папке / forum внутри публичной папки, поэтому каждый раз, когда я захожу на:

http://localhost:8000/forum/

Открывает страницу WordPress.

У меня проблемы с запуском экземпляра промежуточного программного обеспечения до этого маршрута.

Я хочу:

Route::GET('/forum', function() { })->middleware('wp_login');

Вот мой пример промежуточного программного обеспечения:

<?php
namespace App\Http\Middleware;

use Closure;
use Log;

class WpForumLogin
{
    public function handle($request, Closure $next)
    {

        Log::debug("test forum lalalala");

        return $next($request);
    }
}

Промежуточное программное обеспечение настроено в ядре следующим образом:

    ...
    protected $routeMiddleware = [

        ...

        'wp_login' => \App\Http\Middleware\WpForumLogin::class,

    ];

Как запустить это промежуточное программное обеспечение перед запуском маршрута WordPresse / forum?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Это идея того, что вы можете сделать:

  • Переименовать папку «forum» (например, «wordpress»)
  • Теперь, когда вы идете в «/ forum»В ответ на маршрут, laravel ответит, и вы сможете запустить свое промежуточное ПО
  • В своем промежуточном ПО, после того как вы выполнили свой контроль, вы можете перенаправить пользователя в новую папку (например, «wordpress»).

Минусы этого решения:

  • пользователь может увидеть изменение URL
  • , если пользователь перейдет прямо к URL "/ wordpress", он обходит ваше промежуточное ПО.В этом случае вы можете проверить URL реферала и действовать так, как хотите.

Это не идеальное решение, а обходной путь.

0 голосов
/ 09 июля 2019

Вы не можете иметь публичный каталог с тем же именем, что и ваш маршрут.Веб-сервер всегда будет сначала искать актуальные файлы / папки.

...