1

みなさん、

私は Codeigneter で遊んでいて、楽しみのためにある種のフォト アルバムを作成しようとしています (実際に始める前に、codeigneter をよりよく理解するため)。

ここでテスト Web サイトをセットアップしました: http://foal.scriptsenprogs.nl/

ここで重要なのは、ユーザーが将来画像をアップロードできることです。そして、その画像を何らかの形で保存したい...

したがって、誰かがこのリンクを使用する場合: http://foal.scriptsenprogs.nl/media/img/albums/1.png

ブロックする必要があります(現在のように)。

/media/img/albumsフォルダーに配置された .htacces ファイルにこのコード行があります

<Directory "http://foal.scriptsenprogs.nl/media/img/albums" >
    Options Includes
    AllowOverride All
    Order allow,deny
    Deny from All
</Directory>

私は .htaccess ファイルに関するノウハウがほとんどないことを告白しなければなりませんが、これはうまくいくようです (直接の URL はブロックされています)。

私の codeIgneter コードでは、これを使用して Web ページに画像を追加します。

$str .= '<div style="margin-top:20px;"><img width="200px" src="./media/img/albums/' . $imageStuff[$row['album_id']] -> img_id . '.' . $imageStuff[$row['album_id']] -> img_type . '" /></div>';

そして、.htaccess ファイルの前は機能していました。しかし、今は機能していません。

Chromes エラー コンソールを確認すると、次のエラーが表示されます。

GET http://foal.scriptsenprogs.nl/media/img/albums/1.png 404 (Not Found) foal.scriptsenprogs.nl:48

だから、404 Not Foundそれはエラーです。しかし、URL を確認すると、それが絶対 URL に与えられていることがわかりますか? しかし、相対 URL を挿入しましたよね?

これを修正する方法について何か考えはありますか?

EDIT 1 サブドメインのウェブルートに、次の .htaccess ファイルがあります。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|school|media|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

編集2 質問をもっと明確にするために...

Web サイト ( http://foal.scriptsenprogs.nl/ ) の場合、相対パスを使用して画像を表示できるようにする必要があります。(このように<img width="200px" src="./media/img/albums/1.png" />:)

ただし、絶対パスを介して画像にアクセスしようとする場合は、ブロックする必要があります (リンクは次のようになります: http://foal.scriptsenprogs.nl/media/img/albums/1.png )

4

2 に答える 2

0

CIと相対URLがうまく連携しない場合があります。base_url関数を使用してみてください

'src="'.base_url().'media/img/albums/'
于 2013-02-17T22:57:00.933 に答える
0

既存のファイルに新しいルールを追加できwebroot/.htaccessます。

ファイルの先頭にある行の後に次を配置しRewriteEngine Onます。

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?yoursite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png|jpg)$ /404.html [L]

これにより、jpg、gif などへのアクセスがドメインhttp://yoursite.comに制限され、他の要求は 404 ページにリダイレクトされます。

注: ローカル サーバーでこれをテストしている場合は、サイトと同じドメインにいるため、ほとんどの場合、何も起こっていないように見えます。

于 2013-02-18T08:52:00.323 に答える