为什么laravel没有进入包含index.php的公共文件夹

时间:2018-01-31 11:44:00

标签: php laravel .htaccess

我有problem我的程序没有进入公共文件夹。

我所做的是:

  1. server.php更改为index.php

  2. css,js,images移至root文件夹,但将copied .htaccess移至root文件夹

  3. 现在我的代码进入 root

    中的index.php
    <?php
    
    /**
     * Laravel - A PHP Framework For Web Artisans
     *
     * @package  Laravel
     * @author   Taylor Otwell <taylor@laravel.com>
     */
    
    $uri = urldecode(
        parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
    );
    
    // This file allows us to emulate Apache's "mod_rewrite" functionality from the
    // built-in PHP web server. This provides a convenient way to test a Laravel
    // application without having installed a "real" web server software here.
    if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
        return false;
    }
    
    
    echo __DIR__.'/public/index.php'; die;  <-- for debuggig when i remove 500 error
    
    require_once __DIR__.'/public/index.php';
    

    上面的代码给出了 /home/ebsprint/public_html/enigma-crm/public/index.php

    现在真正的问题(文件夹public - files)

    public 
            -  .htaccess
            -  index.php  
    

    文件夹公开index.php

    <?php
    
          echo 'here'; die;
    

    提供500错误

    问题:在本地环境中它工作正常,但在托管时, root index.php来电不会 public / index.php

1 个答案:

答案 0 :(得分:0)

只需添加.htaccess代码,您就不需要更改Laravel目录结构。 在根目录下使用此代码

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.yourdomain.com$ [NC,OR]
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]