Laravel无法检测公用文件夹中的文件


Laravel not detecting files from public folder

大家好,下面是公共文件夹.htaccess的代码…

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    Options +FollowSymLinks
    RewriteRule ^ index.php [L]
    # Redirect Trailing Slashes...
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
</IfModule>

虽然我有一些图像在公共文件夹…"显示未找到错误信息"…如何解决这个问题??

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>
    RewriteEngine On
    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

试着把它改成这样,确保这个。htaccess在你的公共文件夹里。在app内部,我有。htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

和laravel工作得很好!

试试下面的代码。它将在共享服务器或其他服务器中正常工作。

For修复此问题。我做了一些步骤:

  1. 公用文件夹中的所有文件复制到根文件夹

  2. change path in index.php表示将'../'替换为"/"

  3. 用此代码更新。htaccess文件。

  4. 我还添加了隐藏env文件的代码。如果你没有添加这些代码,那么任何人都可以看到你的env文件。

     <IfModule mod_rewrite.c>
     <IfModule mod_negotiation.c>
         Options -MultiViews -Indexes
     </IfModule>
     RewriteEngine On
     # Handle Authorization Header
     RewriteCond %{HTTP:Authorization} .
     RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
     # Redirect Trailing Slashes If Not A Folder...
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_URI} (.+)/$
     RewriteRule ^ %1 [L,R=301]
    
     #RewriteCond %{REQUEST_URI} !('.css|'.js|'.png|'.woff|'.woff2|'.jpg|'.gif|robots'.txt)$ [NC]
     RewriteCond %{REQUEST_URI} !('.svg|'.woff|'.woff2|'.ttf|'.css|'.js|'.png|'.jpg|'.gif|'.pdf|'.jpeg|'.docx|robots'.txt)$ [NC]
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^ index.php [L]
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_URI} !^/public/
     RewriteRule ^(css|js|images|admin|userimage|ckedit_images|video|thumbnail|fonts|amenities-pic|img|propert|property_video|vendor|photos|files|doc|flags|1x1|4x3)/(.*)$ public/$1/$2 [L,NC]
     # Handle Front Controller...
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^ index.php [L]
    
    #hide a Specifuc Laravel .env File
    <Files .env>
    order allow,deny
    Deny from all
    </Files>