在子文件夹中安装了Laravel 5,修改后的.htaccess但资源没有显示

时间:2017-06-08 21:26:57

标签: php laravel .htaccess laravel-5

我在子文件夹中安装了laravel 5.4,e.x。 example.com/laravel。

我跟着ka_lin的anwser看起来一切正常,除了他们没有显示的资产。但是,如果我在网址中添加“public”,例如example.com/laravel/public/(asset uri ...),我可以请求资产。我想知道无论如何都要解决这个问题。

.htaccess驻留在项目根文件夹中:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

   RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

1 个答案:

答案 0 :(得分:0)

我终于找到了原因!!

因为我将我的文件夹命名为“img”而不是“images”,所以我必须更改

*right

`templates`

如果我有其他资源如字体,我需要将文件夹名称添加到括号中并修改

RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]

包含扩展程序。

我对apache配置了解不多,但它对我有用。希望它能帮助其他人。