PDA

View Full Version : برطرف کردن حساسیت به حروف بزرگ و کوچک در نام فایل موجود در آدرس پی اچ پی



emperatorphp
سه شنبه 25 فروردین 1394, 08:18 صبح
بسم الله الرحمن الرحیم
سلام
برطرف کردن حساسیت به حروف بزرگ و کوچک در نام فایل موجود در آدرس پی اچ پی

بطور مثال
من در روت سایتم فایلی با نام test.jpg دارم

آدرس زیر خطای 404 میده
example.com/Test.jpg
اما آدرس زیر باز میشه
example.com/test.jpg




ممنون میشم راهنمایی کنید.

j_naroogha@yahoo.com
سه شنبه 25 فروردین 1394, 08:50 صبح
فکر نکنم بشه کاری کرد چون لینوکس بر خلاف ویندوز به این مورد حساسه.
البته اپاچی یه چی داره بنام mod spelling که فکر کنم کارت رو راه بندازه... یه گوگل کن.

emperatorphp
سه شنبه 25 فروردین 1394, 09:40 صبح
فکر نکنم بشه کاری کرد چون لینوکس بر خلاف ویندوز به این مورد حساسه.
البته اپاچی یه چی داره بنام mod spelling که فکر کنم کارت رو راه بندازه... یه گوگل کن.

اگه منظورتون
CheckSpelling
توی
htaccess
هستش
گذاشتم اما بقیه صفحات باز نمیشن و خطای 500 میدن


RewriteEngine On


CheckCaseOnly On
CheckSpelling On


RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(\w+)/(\w+)/(\w+)$ ./Controllers/$1Controller.php?action=$2&param1=$3

ali.webdesign
سه شنبه 25 فروردین 1394, 10:03 صبح
منم همین مشکل رو داشتم

باید در ادرس دهی ها دقت کنید به فکر برطرف کردن حساسیت نباشید

emperatorphp
سه شنبه 25 فروردین 1394, 10:28 صبح
منم همین مشکل رو داشتم

باید در ادرس دهی ها دقت کنید به فکر برطرف کردن حساسیت نباشید


از مثالی که تو صورت سوال نوشتم کاملا مشخص هستش که مشکل از حساسیت به حروف بزرگ و کوچکه نه از آدرس دهی

reza_alie
سه شنبه 25 فروردین 1394, 11:50 صبح
سلام
فکر کنم با استفاده از عبارات با قاعده کارت راه بیفته

j_naroogha@yahoo.com
سه شنبه 25 فروردین 1394, 12:51 عصر
http://www.osguides.net/tips-a-tricks/227-howto-make-apache-case-insensitive.html

j_naroogha@yahoo.com
سه شنبه 25 فروردین 1394, 12:53 عصر
http://blog.servergrove.com/2010/08/24/fixing-problems-with-case-sensitive-urls/

m.esmaeilzadeh
سه شنبه 25 فروردین 1394, 13:03 عصر
میشه بفرماید سر این قضیه کدام بخش از برنامه شما دچار مشکل میشه ؟
چون این قضیه جزء روال عادی سیستم عامل ها و نهایتا سرورهاست ....
مگر اینکه بتونید ورودیها رو str lower وارد کنید !
بازم به کارتون بستگی داره

Unique
سه شنبه 25 فروردین 1394, 15:16 عصر
همونطور که آقای اسماعیل زاده گفتن این موضوع خیلی عادیه و لینوکس مثل ویندوز نیست ! به حروف بزرگ و کوچیک حساسه. آدرسی دهی که شما توی html یا css انجام میدین دست خودتونه و چیزی نیست که کاربر تایپش کنه !

اما برخی مواقع هست شما مثلا کنترل پنلتون توی زیر شاخه هست و مشتری میاد توی URL از ContRolPanel بجای controlpanel استفاده میکنه ! خوب در این حالت چاره جز rewrite کردن ندارین.
اما اگه خیلی موضوع از این حرفا پیچیده تر هست و ممکنه اشتباه کاربر برای شما خیلی گرون تموم بشه باید از کد زیر توی httpd.con یا htaccess. استفاده کنید :


<IfModule mod_speling.c>
CheckSpelling On
CheckCaseOnly On
</IfModule>

اون خطای ۵۰۰ احتمالا به خاطر عدم وجود mod_speling هست. اما باید log های سرور را دید. اگه هسات شما shared هست از پشتیبانی بپرسین mod_speling فعال هست یا نه.

emperatorphp
چهارشنبه 26 فروردین 1394, 16:51 عصر
همونطور که آقای اسماعیل زاده گفتن این موضوع خیلی عادیه و لینوکس مثل ویندوز نیست ! به حروف بزرگ و کوچیک حساسه. آدرسی دهی که شما توی html یا css انجام میدین دست خودتونه و چیزی نیست که کاربر تایپش کنه !

اما برخی مواقع هست شما مثلا کنترل پنلتون توی زیر شاخه هست و مشتری میاد توی URL از ContRolPanel بجای controlpanel استفاده میکنه ! خوب در این حالت چاره جز rewrite کردن ندارین.
اما اگه خیلی موضوع از این حرفا پیچیده تر هست و ممکنه اشتباه کاربر برای شما خیلی گرون تموم بشه باید از کد زیر توی httpd.con یا htaccess. استفاده کنید :


<IfModule mod_speling.c>
CheckSpelling On
CheckCaseOnly On
</IfModule>

اون خطای ۵۰۰ احتمالا به خاطر عدم وجود mod_speling هست. اما باید log های سرور را دید. اگه هسات شما shared هست از پشتیبانی بپرسین mod_speling فعال هست یا نه.


مرسی حل شد

parsidev
چهارشنبه 26 فروردین 1394, 17:47 عصر
دوتا راه کار الان به ذهنم می رسه:
یک : استفاده از سرور ویندوز که دیگه به حروف حساس نیست
دو: در سرور لینوکس استفاده از mod rewrite در htaccess که می تونید نام فایلهای رو به حالت lower تبدیل کنید و بعد درخواست بفرستید