从位于其他位置的目录访问特定的Laravel 5路由

Har*_*osh 7 wordpress .htaccess mod-rewrite laravel

我安装了wordpress:

example.com
Run Code Online (Sandbox Code Playgroud)

和laravel / public目录(可从api.example.com访问)

example.com/api
Run Code Online (Sandbox Code Playgroud)

如何访问一个laravel路线说/playexample.com/play

目前我有这个example.com/play/play显示正确的laravel路线,但我需要它上升一个级别.

在/ home/public_html/play中设置 index.php

require __DIR__.'/../../laravel/bootstrap/autoload.php';
$app = require_once __DIR__.'/../../laravel/bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)

这正确地指向了/home/laravel例如

那么路线文件是

Route::group(['prefix' => 'play'], function () {    
    Route::get('/', ['as'=>'/', 'uses'=>'Controller@play']);
});
Run Code Online (Sandbox Code Playgroud)

我已经添加RewriteCond %{REQUEST_URI} !^/(play/.*)$到根.htaccess所以wordpress不会接管.

最后这就是我遇到问题的地方:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /play/index.php [L]

</IfModule>
Run Code Online (Sandbox Code Playgroud)

位于 /home/public_html/play

那么我如何在/ play目录中展示laravel路线?这可以通过重写来实现吗?我可以将参数传递给laravel以告诉它以root身份开始/播放吗?

Kli*_*ent 4

当您有多个应用程序想要从单个域访问它时,最好的实现是为每个应用程序启动不同的服务器。您可以设置从主应用程序到其他应用程序的代理。

您可以使用如下设置为您的 laravel 应用程序启动 apache2 服务器

<VirtualHost 0.0.0.0:8080>
  DocumentRoot "path-to-laravel-app"

  <Directory "path-to-laravel-app">

    Options Indexes FollowSymLinks Includes ExecCGI

    AllowOverride All
    Require all granted
    Allow from all
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后在你的 WordPress 应用程序文件中设置代理,.htaccess如下所示

ProxyPass "/play"  "http://locahost:8080/play"
ProxyPassReverse "/play"  "http://locahost:8080/play"
Run Code Online (Sandbox Code Playgroud)