2016-05-03 10 views
3

を発射ないフォルダ:www.mydomain.com/images/image_abc123.jpgを、私はそれを願ってwww.mydomain.com/homeにリダイレクトされます。しかし、ルートはトリガーされず、代わりにイメージを表示するようになります。

アドバイスはありますか?ありがとうございました!

編集:ここに私の.htaccessが/ publicディレクトリの下にlaravel 5.2のデフォルトである

<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] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

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

ミドルウェアの定義を試しましたか? –

+0

はい、私は持っています。それはあまりにもトリガされていません。それは、私が間違っていることです。 –

+0

どうやってやったのですか?私を見せてくれる ? –

答えて

0

大丈夫です!理由のためにパブリックフォルダの名前がpublicになっています。あなたは(あなたが疑問に思った場合、ストレージフォルダが何であるかthatsの)ストレージフォルダに

Storage/app 

をそれらの画像を配置する必要があり、このように、彼らはもはやパブリックフォルダに存在してはいけないし、人々が ない限り、それらに達することができない問題を解決するために あなたは、ファイル あなたが方法 を使用して、テーマを提供しない限り、答えは=がパブリックであることからファイルを防ぎん私はすべてが明らかであると思いますがaccesingから一部またはすべての人々を防止=あなたが達成したいものをこの

Route::get('images/{filename}', function ($filename) 
{ 
    // get the image named $slug from storage and display it 
    // Something like (not sure) 

     $image = File::get('images/' . $filename . '.jpg'); 

     return response()->make($image, 200, ['content-type' => 'image/jpg']); 

}); 

を行います

1

これが原因で、あなたのウェブサーバである可能性があります。一般的なデフォルトは、通常これに似ています。

server { 
     listen 80; 
     listen [::]:80; 
     listen 443 ssl; 
     listen [::]:443 ssl; 

     server_name cards.foo *.cards.foo; 
     root /var/www/cards/public; 

     index index.php; 
     include php.conf; 

     location/{ 
       try_files $uri $uri/ /index.php$is_args$args; 
     } 
} 

try_filesディレクティブに注意してください。これはWebサーバーに伝えています。

  1. 要求が現存するファイルの場合は、それを開きます。
  2. 要求が既存のディレクトリの場合は、それをインデックスします。
  3. それ以外の場合は、ディレクトリを/index.phpの引数として渡します。

したがって、最初のパスで「そのファイルは存在しますか?」と表示され、「はい」と表示され、PHP 100%をバイパスします。あなたはそれを変えたいと思うでしょう。

+0

ありがとうジョシュ。あなたの答えは理にかなっています。私はlaravel 5.2のデフォルトの.htaccessを使用していますが、どうすれば変更できますか? –

+0

ソースコードを確認してください。 'RewriteCond%{REQUEST_FILENAME}!-f'行を削除したいでしょう。これがCSSとJSに対するすべてのリクエストを破ることに注意してください。 .htaccessファイルの編集に関するアドバイスが必要な場合は、別のSOの質問をする必要があります。 https://github.com/laravel/quickstart-basic/blob/master/public/.htaccess – Josh

関連する問題

 関連する問題