Archive for the ‘Linux’ Category
سوال و راه حل های پیشنهادی برای Case-Sensitive در لینوکس
در مورد پست قبلی ام با افرادی که صحبت کردم راه حل های مختلف پیشنهاد کردند !
اصلا سوال چیه و تا حالا به چه راه حل هایی رسیدم .
سوال اینه من در سایت ام آدرسی به صورت www.domain/User دارم میخوام کاربر با هر آدرسی که وارد کرد به آدرس اصلی که همین شاخه /User هدایت بشه .
نکات قابل توجه:
- این نوع آدرس دهی مهمه که هر آدرس یک چیزی را می رسونه
- آدرس ها شامل استاندارد خاصی نیست و ممکنه حالت های مختلف باشه مثلا UserAccount اسم یک فایل باشه پس نمیشه مثلا کدی نوشت که اول هر اسم Uppercase کنه
- نمیتونیم تموم حرف را کوچک یا بزرگ کنیم
- ما هزاران فایل و شاخه با این شیوه داریم
- سرور باید حتما لینوکس باشه چون یک سری برنامه ها روی لینوکس اجرا میشه و با سرور های ویندوز کند و یا غیر قابل اجرا هستند
را حل ها
- ساده ترین روش اینه که ما فایل های config اصلی سرور را تغییر بدیم که من الان به این فایل ها دسترسی ندارم و یک سری دامین دیگه روی این سرور هست و نمیخوام واسه اونا هم اعمال بشه
- در فایل .htaccess من بوسیله Mod Rewrite انجام بدم که کد روی سرور اجرا نشد و Error 500 داد !
- راه حل سوم اینه که بیام و فایل .htaccess کد Error 404 را به صفحه ۴۰۴٫php بفرستم و اونجا آدرس ورودی را بگیرم و آدرس را تبدیل به uppercase یا lowercase کنم و اگر نبود هم که صفحه Error 404 را نشون میده .
راه حلی که الان به ذهنم رسید اینه که توی فایل کنترل کنم اگر شاخه بود – که باید تموم حالتهای اسم کنترل بشه – بره به شاخه مورد نظر و نمایش بده
البته این راه حل مشکلی که داره تموم بار سرور را می اندازه روی یک فایل ۴۰۴٫php و بعد ممکنه در سرعت به خاطر بار زیاد مشکل برخورد کنیم . - راه حلی که به بدستم رسید و راه حل این به نظر میاد هست استفاده از Mod Speling و استفاده از CheckCaseOnly هست که این هم به Error 500 میرسه که فکر کنم دلیل اش اینه که روی سرورهای لینوکس فایل mod_speling.c را از روی سرورها پاک میکنند و نمیشه بعد کنترل اش کرد – راهی سراغ دارین این فایل چک کرد توی چه وضعیتی هست ؟ – و به مشکل بر می خوریم !
این کلا سوال و راه حل ها بود !
حالا هنوز به نتیجه ای نرسیدم مگر مورد سوم که باید امتحان بشه …
مشکل Case-Sensitive در سرور Linux !
به هر کی گفتیم لینوکس آقا آسمون و ریسمون بافت واسمون !
الان من به یک مشکل برخوردم و اونم اینه میخوام توی سرور لینوکس ترجیحا بوسلیه فایل .htaccess این مورد فیرفعال کنم , با دستور Mod Rewrite جواب نداده و راه حل پیشنهادی CheckCaseOnly هست ولی این روی سرور با Error 500 روبرو میشه !
راه حل دوم هم استفاده از .htacess برای کنترل Error ها هست و کنترل اونها بوسیله PHP ولی این روش به خاطر باری که روی سرور با آدرس های مختلف میوفته یک کمی غیر معقولانه است چون تموم Request ها میره به فایل مثلا x.php و اونجا هدایت اش میکنه !
البته بعضی بچه ها مثل فرید و افشین و مسعود و یاشار و سام و مهران و جولیوس راه هایی را پیشنهاد کردند ولی هنوز نتیجه نداده !
الان بیش از یک هفته است که درگیر این موضوع هستم !
تخصص ام هم لینوکس و Apache Web Server نیست !
نگین هم نمیشه چون میشه ولی من هنوز نتونستم راهی پیدا کنم !
کسی هست مرا یاری دهد ؟
خودم هم پیدا کردم می نویسم !
پی نوشت: هر چی میخونین عمقی بخونین !
فایل .htaccess
دارم چند روزی روی ساختار فایل .htaccess یکی از سایتها کار میکنم , متاسفانه کسی اصلا با این فایل به صورت حرفه ای کار نکرده تا بتونه مشکل را حل کنه , خودم به شخصه روی لینوکس حرفه ای نیستم ولی با این فایل آشنایی دارم !
خیلی ها که اصلا هیچ ویرایشی روی این فایل انجام نمیدهند در حالیکه خیلی از سایتها مثل گوگل ۹۰% کنترل سایتها و آدرس ها را بوسیله فایل .htaccess انجام میدن !