如何修复laravel中的caffinated moudule中的'/'

Pra*_*rve 5 php url laravel laravel-5.3

  1. /var/www/html/使用命令在localhost()上进行了一个新的laravel设置composer create-project laravel/laravel moduleTesting --prefer-dist.

  2. 然后我将文件夹中的所有文件移动到(/var/www/moduleTesting/setup),然后将所有文件从public folder(/var/www/moduleTesting/setup/public)移动到moduleTesting文件夹(/var/www/html/moduleTesting).

  3. 我更改了放在moduleexample.dev文件夹(/var/www/html/moduleTesting/)中的index.php文件中的bootstrap文件路径.

    需要DIR.'/ setup/bootstrap/autoload.php'; $ app = require_once DIR.'/ ../../laravel_setup/bootstrap/app.php';

  4. 我还设置了文件夹/var/www/moduleTesting/setup/bootstrap/cache和权限/var/www/moduleTesting/setup/storage

  5. 然后我composer dump-autoload在(/var/www/moduleTesting/)的终端运行命令.

  6. 然后我尝试在浏览器中运行URL,然后我看到laravel app的欢迎页面.

  7. 然后我安装模块包含caffeinated/modules首先通过Composer安装包.

    composer require caffeinated/modules
    
    Run Code Online (Sandbox Code Playgroud)

    完成此操作后,只需将服务提供者和外观类添加到项目/var/www/html/moduleTesting/setup/config/app.php文件中:

    服务提供者

    Caffeinated\Modules\ModulesServiceProvider::class,
    
    Run Code Online (Sandbox Code Playgroud)

    正面

    'Module' => Caffeinated\Modules\Facades\Module::class,
    
    Run Code Online (Sandbox Code Playgroud)
  8. 成功安装后,我按命令创建一个新模块, make:module Admin并按照简单的步骤创建,并通过点击URL http:// localhost/moduleTesting/admin '运行.

问题

现在问题是当我运行URL时.http:// localhost/moduleTesting/admin '它运行成功,但是当我运行' http:// localhost/moduleTesting/admin '(仅在同一个网址的末尾添加'/')时,它现在可以正常工作并将我重定向到url'http :// localhost/admin '

有谁知道,请帮助我如何解决这个问题,在同一节点上如果在内部文件夹中上传服务器上的设置并运行相同的URL它也重定向我.

Jan*_*lem 0

这可能是因为 .htaccess 将尾随斜杠重定向到没有尾随斜杠的 URL。

在 .htaccess 文件的此部分中,Apache 将所有带有尾部斜杠的内容(如果不是文件夹)重定向到其原始位置。这会引起麻烦,因为项目的 public 位于一个目录中。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

将第二条规则替换为:

RewriteRule ^(.*)/$ /moduleTesting/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

注意:最好不要使用目录作为公共目标,因为会发生此类问题。您应该更好地创建一个假本地域,例如: module-test.dev 或其他东西。