/
  • آدرس دهی درست url

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی آدرس دهی درست url
    نویسنده پیام
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #1
    آدرس دهی درست url
    سلام دوستان عزیز

    عید فطر همگی مبارک

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

    درست هست یا نه.

    در ضمن این آدرس دهی ها با استفاده از htaccess هستش.

    تو جستجوهایی که کردم تو بیشتر جاها این مطلب رو گفته بودند که آدرس دهی باید کوتاه باشه

    یعنی اگه آدرس دهیمون با / باشه از 3 یا 4 تا بیشتر نشه که تو موتور گوگل راحتر بتونه بیاد.

    به نظر شما کدوم یک از آدرس دهی های زیر بهتره؟

    1- آدرس دهی wordpress
    این آدرس دهی رو از سایت فیلم برداشتم
    نقل قول: http://www.zzzmovie-3.com/2010/09/09/دان...bles-2010/
    2-آدرس دهی سایت آمازون
    نقل قول: http://www.amazon.com/books-used-books-t...ode=283155
    3-آدرس دهی یه سایت به انتخاب خودم
    نقل قول: http://30tak.ir/aplication/learning/114-...dacom.html

    تو 3 روش آدرس دهی بالا گزینه 1 از روش
    کد PHP:
    RewriteEngine on
    RewriteRule 
    ^blog/([0-9]+)-([a-z]+) http://corz.org/blog/index.php?archive=$1-$2 [NC]
    که آدرس زیر 
    http
    ://corz.org/blog/2003-nov
    به 
    http
    ://corz.org/blog/index.php?archive=2003-nov 

    تبدیل میکنه

    گزینه 2 از روش
    کد PHP:
    RewriteEngine On
    RewriteCond 
    %{QUERY_STRINGfoo=(.*)
    RewriteRule ^grab(.*) /page.php?bar=%1

    که آدرس زیر 
    http
    ://domain.com/grab?foo=bar
    به آدرس
    http
    ://domain.com/page.php?bar=bar 
    تبدیل میکنه

    در گزینه 3 از روش
    کد PHP:
    RewriteEngine on
    RewriteRule 
    ^(.+)\.htmhttp://corz.org/$1.php [R,NC] 
    استفاده میکنه
    منبع اطلاعات بالا از سایت http://corz.org هستش

    خوب سوالی که اینجا پیش میاد چطوری آدرس دهی کنیم که سایتمون از امنیت خوبی برخوردار

    باشه؟

    تو روش اول و سوم id ارسال نشده یعنی چطوری آدرس دهی کردن؟

    چه روش های شما پیشنهاد میدید؟

    شما هم پیشنهادادتون رو بدید!!!!!!
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    (آخرین ویرایش در این ارسال: ۱۳۸۹ شهريور ۱۹ ۱۱:۲۳ صبح، توسط mojtabadj.)
    ۱۳۸۹ شهريور ۱۹ ۱۱:۰۳ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : ahora
    fzerorubigd آفلاین
    عضو
    ***

    ارسال‌ها: 59
    تاریخ عضویت: ۱۳۸۹ شهريور ۱۸
    اعتبار: 0
    تشکرها : 6
    ( 60 تشکر در 36 ارسال )
    ارسال: #2
    RE: آدرس دهی درست url
    فقط id نیست که Smile
    میتونی یه فیلد جداگانه داشته باشی (مثل slug توی wordpress که برای هر پست و صفحه یکی داره) یا اینکه مثل اکثر MVC ها آدرس رو تیکه تیکه کنی (یعنی همون
    کد PHP:
    $_SERVER['REQUEST_URI'
    رو
    اونوقت بر اساس اون کد مناسب رو اجرا کنی یا فیلد مناسب رو پیدا کنی.
    از لحاظ امنیت،‌ این زیاد تاثیری بر امنیت نمیگذاره، بیشتر هدفش مناسب بودن آدرس برای موتورهای جستجو + قابلیت خوانایی برای آدمیزاد Smile هست. مثلا دروپال آدرسهاش برای موتور جستجو خوبه ، ولی زیاد قابلیت خوانایی نداره، وردپرس یه جورایی خوانا تره برای انسان. یعنی چیزیه که میشه راحت به خاطر سپردش. که خیلی ها اهمیتی بهش نمیدن و دلیلشون هم موجهه، چون این دوره زمونه همه از طریق موتور جستجو سایت رو پیدا میکنن نه حافظه
    اما چیزی که همیشه حرص منو در میاره، بودن آدرس فارسی توی لینکه، شاید خوب باشه (مثل ویکی) ولی همیشه سعی میکنم ازش پیشگیری کنم Smile
    __________________________________________________________________________
    یادداشتهای بیت نیمسوز Big Grin
    ۱۳۸۹ شهريور ۱۹ ۰۸:۲۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #3
    RE: آدرس دهی درست url
    (۱۳۸۹ شهريور ۱۹ ۰۸:۲۸ عصر)fzerorubigd نوشته شده توسط:  فقط id نیست که Smile
    میتونی یه فیلد جداگانه داشته باشی (مثل slug توی wordpress که برای هر پست و صفحه یکی داره) یا اینکه مثل اکثر MVC ها آدرس رو تیکه تیکه کنی (یعنی همون
    کد PHP:
    $_SERVER['REQUEST_URI'
    رو
    اونوقت بر اساس اون کد مناسب رو اجرا کنی یا فیلد مناسب رو پیدا کنی.

    میشه یه کمی بیشتر توضیح بدین؟
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    ۱۳۸۹ شهريور ۲۰ ۱۲:۱۵ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    fzerorubigd آفلاین
    عضو
    ***

    ارسال‌ها: 59
    تاریخ عضویت: ۱۳۸۹ شهريور ۱۸
    اعتبار: 0
    تشکرها : 6
    ( 60 تشکر در 36 ارسال )
    ارسال: #4
    RE: آدرس دهی درست url
    مثلا این رو در نظر بگیر (توی فایل htaccess ) :
    کد:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    حالا توی فایل index.php خیلی ساده، فقط این :
    کد PHP:
    <?php
        
    echo $_SERVER['REQUEST_URI'] ; 
    و بعد شروع کن با حالتهای مختلف سایت رو باز کن (مثلا http://test.com/this/is/a/test ) که خوب test.com مهم نیست، باقیش منظورمه.
    اینجوری آپاچی اگه فایل باشه فایل رو سرو میکنه، اگه فولدر باشه هم فولدر رو. ولی اگه نباشه، پاست میده به فایل index.php (مثل همین مثالی که من زدم با test.com ) بعد میبینی که آدرسی که توی وب نوشتی دیده میشه، خوب حالا میتونی از این استفاده کنی .
    مثلا فرض کن میخوای قابلیت اینو بگذاری که با :
    کد:
    http://example.com/user/f0rud
    تمام نوشته های کاربر f0rud نمایش داده بشه، کافیه که REQUEST_URI (ایندکس در آرایه سرور) رو تیکه کنی، اگه اولش user بود ، بری سراغ تیکه دوم و از اون اسم استفاده کنی برای نمایش تمام نوشته های کاربری با اون اسم (اگه باشه) یا نمایش صفحه ۴۰۴ اگه نباشه. بعد میتونی برای سایتت یه سری مسیر تعریف کنی، اگه تیکه اول user بود اینکارو بکن، admin بود اونکارو...
    Framework ها هم از همین روش استفاده میکنن، Wordpress هم .
    کار سختی نیست، مثلا تو ایندکس اینو بنویس :
    کد PHP:
    <?php
        $request
    =$_SERVER['REQUEST_URI'] ;

        
    $req_array=explode("/",$request);
        
        
    //Index 0 is empty :D and always available
        
    array_shift($req_array);
        
        
    $action=array_shift($req_array);
        
        switch (
    $action){
            case 
    '' default_section_of_your_site();break;
            case 
    'user' user_section_of_your_site($req_array);break;
            case 
    'admin' admin_section_of_your_site($req_array);break;
            default : 
    this_section_not_available($action,$req_array);
        } 
    البته توی case ها توابع باید وجود داشته باشن Smile اسمها گویاست ، و این یه مثاله خیلی ساده برای فهم قضیست نه یه مثال کامل و امن Smile
    اینجوری بر اساس قسمت اول آدرس یه صفحه فراخوانی میشه، با آرایه ای حاوی باقی قسمتهای آدرس
    امیدوارم واضح بوده باشه :دی
    __________________________________________________________________________
    یادداشتهای بیت نیمسوز Big Grin
    ۱۳۸۹ شهريور ۲۰ ۱۲:۵۴ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : mojtabadj
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #5
    RE: آدرس دهی درست url
    با تشکر فراوان از شما fzerorubigd دوست عزیز

    مطلبتون خیلی پر بار بود با این روشی که شما گفتید دیگه لازم نیست که برای هر url یه RewriteRule بنویسیمAngel

    یه سوال من دارم اونم اینه که نمیشه id رو طوری فرستاد که تو url نشون نده یا طوری بفرستیم که کسی اگه url رو دید نفهمه که ایدیش چیه؟

    راستی این رو میشه یه کمی بیشتر توضیح بدیTongue

    نقل قول: اینجوری آپاچی اگه فایل باشه فایل رو سرو میکنه، اگه فولدر باشه هم فولدر رو

    خیلی خیلی ممنون
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    (آخرین ویرایش در این ارسال: ۱۳۸۹ شهريور ۲۰ ۱۰:۴۲ صبح، توسط mojtabadj.)
    ۱۳۸۹ شهريور ۲۰ ۰۹:۲۴ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    fzerorubigd آفلاین
    عضو
    ***

    ارسال‌ها: 59
    تاریخ عضویت: ۱۳۸۹ شهريور ۱۸
    اعتبار: 0
    تشکرها : 6
    ( 60 تشکر در 36 ارسال )
    ارسال: #6
    RE: آدرس دهی درست url
    1- درباره فرستادن id طوری که نفهمه، اگه برات مشکل امنیتی ایجاد میکنه، بهتره بیشتر روی کدت تمرکز کنی، چون حدس زدن id اصلا سخت نیست. یه عدد مثبته بالاخره Smile‌ ولی توی روشی که بالا توضیح دادم به جای id میتونی یه فیلد دیگه اضافه کنی مثلا به اسم slug که حاوی حروف انگلیسی باشه، و توی دیتابیس هم یکتا باشه. و اون رو توی آدرس بفرستی نه id رو.

    ۲- اون جمله مربوط میشه به فایل htaccess که نوشتم ، خط به خطش میشه این :
    کد:
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    یعنی اگه درخواستی که به آپاچی میرسه، آدرس یه فایله و اون فایل اندازه ای بیش از صفر داره و یا
    کد:
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    یعنی درخواستی که به آپاچی میرسه، یه سیمبولیک لینکه (زنده باد لینوکس و سیمبولیک لینکهاش) که وجود داره و یا
    کد:
    RewriteCond %{REQUEST_FILENAME} -d
    در خواست، آدرس یه پوشه است که وجود داره
    کد:
    RewriteRule ^.*$ - [NC,L]
    همون فایل رو بی کم و کاست پس بفرست. یا اینکه داخل فولدر شو و فایلهای داخل اون فولدر رو بسته به تنظیمات اون فولدر توی آپاچی سرو کن. اگر هیچ کدوم نبود،
    کد:
    RewriteRule ^.*$ index.php [NC,L]
    فایل index.php رو اجرا کن. (یا هر فایل دیگری که شما دوست دارید) اینجوری اگه شما مثلا یه فایل css یا عکس یا هر چی رو توی فولدر بگذارید و آدرس اونو بنویسید،‌آپاچی همونو پس میفرسته، نه فایل index.php رو. اما اگه فایل نباشه فایل مورد نظر شما رو.
    __________________________________________________________________________
    یادداشتهای بیت نیمسوز Big Grin
    ۱۳۸۹ شهريور ۲۰ ۱۱:۲۳ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : mojtabadj
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #7
    RE: آدرس دهی درست url
    واقعا که توضیحاتتون عالیه میرم کاری رو که گفتین انجام میدم اگه مشکل داشتم مزاحم میشمBig Grin

    با تشکر فراوان از شما دوست عزیزHeart
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    (آخرین ویرایش در این ارسال: ۱۳۸۹ شهريور ۲۰ ۱۱:۴۱ صبح، توسط mojtabadj.)
    ۱۳۸۹ شهريور ۲۰ ۱۱:۳۹ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #8
    RE: آدرس دهی درست url
    سلام دوستان

    من تو سایتم تو لوکال جی کوئری رو به این صورت لود میکنم
    کد PHP:
    <script type="text/javascript" src="http://localhost/Project/Js/jQuery.js"></script> 

    تو حالت عادی مشکلی نداره ولی زمانی که از

    کد PHP:
    $(document).ready(function() { 

    استفاده میکنم و توش تابع رو فراخوانی میکنم این خطا رو میده

    Error: $ is not defined

    این مشکل رو چطوری باید بر طرف کنم؟

    یه نکته اینه که واسه این اونطوری جی کوئری رو فراخوانی کردم که دارم تو سایت mod rewrite میکنم و به صورت عادی لود نمیشهHuh
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    ۱۳۸۹ شهريور ۲۴ ۰۴:۴۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #9
    RE: آدرس دهی درست url
    کسی نفهمید بایدچیکار کنم؟Exclamation
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    ۱۳۸۹ شهريور ۲۴ ۰۷:۱۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #10
    RE: آدرس دهی درست url
    تازه فهمیدم که mod-rewrite کلا با لود jquery مشکل داره

    fzerorubigd کجایی یه کمکی بکن لنگمHuh
    __________________________________________________________________________
    گروه طراحی و برنامه نویسی بهار
    ۱۳۸۹ شهريور ۲۴ ۰۸:۵۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS