• 我使用/var/www/html/命令在localhost(composer create-project laravel/laravel moduleTesting --prefer-dist)上进行了laravel的全新设置。
  • 然后,我将文件夹内的所有文件移到(/var/www/moduleTesting/setup),然后将所有文件从公用文件夹(/var/www/moduleTesting/setup/public)移到moduleTesting文件夹(/var/www/html/moduleTesting)。
  • 我更改了放在moduleexample.dev文件夹(/var/www/html/moduleTesting/)中的index.php文件中的引导文件路径。

    要求 DIR 。'/setup/bootstrap/autoload.php';
    $ app = require_once DIR 。'/../../laravel_setup/bootstrap/app.php';
  • 我还设置了文件夹/var/www/moduleTesting/setup/bootstrap/cache/var/www/moduleTesting/setup/storage
  • 的权限
  • 然后,我在(composer dump-autoload)的终端中运行命令/var/www/moduleTesting/
  • 然后,我尝试在浏览器中运行URL,然后看到laravel应用程序的欢迎页面。
  • 然后我安装模块包caffeinated/modules
    首先通过Composer安装软件包。
    composer require caffeinated/modules
    

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

    服务提供者
    Caffeinated\Modules\ModulesServiceProvider::class,
    

    正面
    'Module' => Caffeinated\Modules\Facades\Module::class,
    
  • 成功安装后,我通过命令创建一个新模块make:module Admin并遵循简单的步骤,它成功创建并通过点击URL http://localhost/moduleTesting/admin'运行。

  • 问题

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

    有人知道吗,请帮助我如何解决此问题,在同一节点上,如果将安装程序上载到服务器的内部文件夹中并运行相同的URL,它也会重定向我。

    最佳答案

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

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

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

    将第二条规则替换为:
    RewriteRule ^(.*)/$ /moduleTesting/$1 [L,R=301]
    

    注意:最好不要将目录用作公用目标,因为会发生此类问题。您最好创建一个伪造的本地域,例如:module-test.dev或类似的东西。

    09-26 22:00