سیستمی‌ها

نسخه‌ی کامل: محافظت از تصاویر محصول
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
از عنوان تاپیک مشخصه میخوایم درباره‌ی ماژول watermark پرستاشاپ حرف بزنیم.
اول از همه بگم که هیچوقت اون سوئیچ داخل تنظیمات ماژول واترمارک رو فعال نکنید!
سوئیچی که اسمش اینه:
Logged in customers see images without watermark
یا به فارسی:
لطفا وارد شوید تا تصویر را بدون علامت ببینید
ترجمه‌ی درستش اینه:
کاربرانی که لاگین کرده‌اند تصاویر را بدون واترمارک ببینند.
اگر این گزینه رو فعال کنید و بازسازی تصاویر رو انجام بدید، تعداد عکس‌هاتون 2 برابر میشه که در صورت محدود بودن فضای هاست، به مشکل بر می‌خورید.
ضمناً این همه منابع هدر میره که در نهایت اگر کسی ثبت نام کرد و وارد حساب کاربریش شد، انگار نه انگار که واترمارکی در کار بوده.

بریم سر اصل مطلب...
کسانی که با ساختار پوشه‌بندی دایرکتوری img/p آشنا هستن، احتمالاً می‌دونن که سایز اصلی تصویر محصول با شناسه‌ی XYZ رو چجور میشه با وارد کردن یک آدرس توی مرورگر دانلود کرد.
حتی اگر از ماژول واترمارک هم استفاده کنید، سایز اصلی بدون تغییر باقی می‌مونه.
چرا؟
برای این که موقع بازسازی تصاویر محصولات، اصل تصویر لازمه موجود باشه تا بقیه‌ی سایزها (حالا چه با واترمارک چه بدون واترمارک) از روی اون ساخته بشن.

با اضافه کردن دستورات زیر به ابتدای فایل .htaccess می‌تونید آدرس‌های اصلی تصاویر رو به عکسی دیگه ریدایرکت کنید تا کسی نتونه دانلودشون کنه.

کد:
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^img/p/([0-9]/)+([0-9])+\.jpg$ %{ENV:REWRITEBASE}img/loader.gif [L]
</IfModule>

حتماً ابتدای فایل واردش کنید. چون پرستاشاپ موقع بازسازی فایل htaccess، دستورات ابتدا و انتهای اون رو نگه میداره ولی بقیه‌ی دستورات رو از اول می‌نویسه.
چرا آخر فایل اضافه نکنیم؟ چون من تست کردم کار نکرد.

آیا مشکلی هم داره؟
من 1 مشکل توی بخش مدیریت دیدم. موقع ویرایش یک محصول، وارد سربرگ تصاویر محصول که شدم، تصاویر به صورت کوچک مشخص بودن ولی با کلیک روی هر تصویر (برای مشاهده‌ی سایز بزرگ) عکس loader.gif نمایش داده شد. چون پرستاشاپ اینجا از سایز اصلی تصویر استفاده می‌کنه. یعنی همون آدرسی که ما ریدایرکتش کردیم تا کسی سوء استفاده نکنه.

حالا چرا loader.gif رو جایگزین کردی؟
ابتدا آدرس علامت سؤال معروف پرستاشاپ رو داده بودم. یعنی img/404.gif ولی با توجه به این که این ریدایرکت کردن ممکنه مشکلاتی داشته باشه، بهتره فعلاً تا یه چند وقت از یه عکسی استفاده کنیم که قشنگ معلوم باشه داره ریدایرکت می‌کنه. یعنی چی؟
شما الان اگر یه جایی از فروشگاهتون به جای یه عکسی علامت سؤال ببینید، باید بررسی کنید ببینید مشکل چیه که اون عکس نمایش داده نمیشه. ولی اگه یه عکس خاص (مثل loader.gif) نمایش داده بشه سریع متوجه میشید مشکل از این کدهاست.

خلاصه این که باید مدتی استفاده کرد تا معلوم بشه مشکل جدی در بخش مدیریت ایجاد می‌کنه یا نه؟

ممنون میشم مشکلاتش رو اینجا بگید.
امروز متوجه شدم که ماژول watermark پرستاشاپ خودش این مسئله رو در نظر گرفته و اتفاقاً دستوراتی که این ماژول به فایل htaccess اضافه می‌کنه بهتر هم هستن، چون آدرس پوشه‌ی ادمین رو استثنا قائل شده که اصل عکس‌ها رو بشه توی بخش مدیریت دید.
تنها مشکلی که داره اینه که دستوراتش رو به انتهای فایل htaccess اضافه کرده، برای همین عمل نمی‌کنن.
مشکل دیگه‌اش اینه که اگر اسم پوشه‌ی ادمین رو عوض کنید اون دستورات دیگه برای بخش ادمین استثنا قائل نمیشن.


اگه پوشه‌ی ادمین رو عوض کردیم چه باید کرد؟
کافیه بعد از تغییر اسم پوشه‌ی ادمین، 1 بار وارد پیکربندی ماژول واترمارک بشید. همین! فقط واردش بشید. خودش دستورات رو با اسم جدید پوشه‌ی ادمین بازنویسی می‌کنه.

چیکار کنیم که دستورات به ابتدای htaccess اضافه بشن؟
لطفاً اگر با php آشنا هستید، این کار رو بکنید:
فایل اصلی ماژول watermark رو ویرایش کنید و تابع writeHtaccessSection رو پیدا کنید.
به جای دستور زیر:

کد:
file_put_contents($path, $source, FILE_APPEND);

این دستور رو بنویسید:

کد:
file_put_contents($path, $source . file_get_contents($path));


اینجوری، دستورات لازم به ابتدای فایل htaccess اضافه میشن.

نتیجه چیه؟
نتیجه اینه که به جای استفاده از دستورات معرفی شده توی پست اول این تاپیک، بهتره ماژول واترمارک رو ویرایش کنید و اگه حسش رو دارید توی گیت‌هاب بهشون بگید این ویرایش رو اعمال کنن.