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

时间:2016-10-27 09:31:59

标签: php laravel url laravel-5.3

  1. 我使用命令/var/www/html/在localhost(composer create-project laravel/laravel moduleTesting --prefer-dist)上重新设置了laravel。

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

  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. 的权限
  6. 然后我在终端(composer dump-autoload)运行命令/var/www/moduleTesting/

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

  8. 然后我安装模块包含caffeinated / modules 首先通过Composer安装软件包。

    composer require caffeinated/modules
    

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

    服务提供商

    Caffeinated\Modules\ModulesServiceProvider::class,
    

    门面

    'Module' => Caffeinated\Modules\Facades\Module::class,
    
  9. 安装成功后,我按命令创建一个新模块 make:module Admin并按照简单的步骤操作,成功创建并通过点击网址http://localhost/moduleTesting/admin'来运行。

  10. 问题

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

将第二条规则替换为:

RewriteRule ^(.*)/$ /moduleTesting/$1 [L,R=301]

注意:最好不要将目录用作公共目标,因为会出现这类问题。你应该更好地创建一个假的本地域,比如:module-test.dev或者其他东西。