- چهارشنبه 9 اسفند 1396 ساعت 14:30
- 3.1.9
- در حال تکمیل
- فعال
به طور پیش فرض، URLها در کدایگنایتر به گونه ای طراحی شده اند که کاربرپسند و بهینه برای موتورهای جستجو باشند. کدایگنایتر به جای استفاده از روش کوئری استرینگ (Query String) که در سیستمهای داینامیک استفاده میشود، از روشی بر پایه سگمنت (segment-based) استفاده میکند. (سگمنت به معنی بخش و تکه است و در اینجا هر سگمنت با اسلش از سگمنت دیگر جدا شده است.)
example.com/news/article/my_article
توجه
استفاده از روش کوئری استرینگ اختیاری و قابل فعالسازی است که در ادامه توضیح خواهیم داد.
سگمنتهای URLها
سگمنت ها در URL، منطبق با رویکرد MVC در ادامه نشان داده شدهاند. (اگر با MVC آشنایی ندارید، معرفی الگوی معماری MVC را مطالعه کنید.)
example.com/class/function/ID
- اولین سگمنت، نام کلاس کنترلر را مشخص میکند که باید فراخوانی شود.
- دومین سگمنت، متد یا فانکشن کلاس است که باید فراخوانی شود.
- سومین سگمنت و سگمنتهای بعد از آن، آیدی (ID) و هر متغییری را که باید به متد کنترلر پاس داده شود را مشخص میکنند.
کتابخانه URL و هلپر URL، فانکشنهایی دارند که کار با دادههای URLها را ساده میکند. علاوه بر این، URLها با استفاده از ویژگی مسیریابی URL یا URL Routing میتوانند بازنویسی (remapping) شوند تا انعطافپذیرتری بیشتری ایجاد کنند.
حذف index.php از URL
در حالت پیشفرض، index.php نیز در URLها وجود دارد.
example.com/index.php/news/article/my_article
اگر ماژول mod_rewrite در وبسرور آپاچی فعال باشد، با قرار دادن ruleهای مشخص در فایل .htaccess
، به راحتی میتوانید index.php را از URLها حذف کنید. مثال زیر یک نمونه از ruleها را نشان میدهد.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
در مثال بالا، همه ریکوئستهای HTTP به جز ریکوئستهایی که به یک فایل یا دایرکتوری موجود در سرور اشاره دارند، به عنوان ریکوئستی برای لود فایل index.php تلقی میشوند.
توجه
این ruleها بر حسب تنظیمات سرور، ممکن هست گاهی به درستی کار نکنند.
افزودن پسوند به URLها
در فایل config/config.php میتوانید پسوندی را مشخص کنید تا به انتهای همه URLهای تولید شده توسط کدایگنایتر اعمال شود. برای مثال URL زیر:
example.com/index.php/products/view/shoes
با تنظیم پسوند .html
برای URLها، URL فوق تبدیل به URL زیر میشود:
example.com/index.php/products/view/shoes.html
فعالسازی کوئری استرینگها در URLها
در برخی موارد ممکن است نیاز به استفاده از کوئری استرینگها در URLها باشد:
index.php?c=products&m=view&id=345
کدایگنایتر از این قابلیت نیز پشتیبانی میکند که میتوانید در فایل application/config.php آن را فعال کنید.
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
اگر مقدار enable_query_strings
را TRUE قرار دهید، این قابلیت فعال میشود. با تریگر کنترلر (controller_trigger) و تریگر متد (function_trigger)، تریگرهای فراخوانی کنترلر و متد شخصیسازی میشوند.
index.php?c=controller&m=method
توجه
اگر از کوئری استرینگ استفاده کنید، دیگر قادر به استفاده از هلپرهای URL (و هر هلپر دیگری که وظیفه تولید URLها را دارد، مانند هلپرهای form) نخواهید بود، زیرا این هلپرها برای کار با URLهای بر پایه سگمنت طراحی شدهاند و باید URLها را خودتان بسازید.
سایر پستهای داکیومنت
- به کدایگنایتر خوش آمدید
- نصب
- بررسی اجمالی
- شروع به استفاده از کدایگنایتر
- کدایگنایتر در یک نگاه
- فیچرهای کدایگنایتر
- فلوچارت اپلیکیشن
- مدل ویو کنترلر
- اهداف طراحی و معماری
- خودآموز
- مشارکت در کدایگنایتر
- نوشتن مستندات کدایگنایتر در صف ترجمه
- گواهی مبدأ توسعه دهنده 1.1 در صف ترجمه
- مباحث کلی
- URLها در کدایگنایتر
- کنترلرها
- نامهای رزرو شده
- ویوها
- مدلها
- هلپرفانکشنها
- استفاده از لایبرریهای کدایگنایتر
- ساخت لایبرری
- استفاده از درایورهای کدایگنایتر
- ساخت درایور
- ساخت کلاسهای هسته سیستم
- ساخت کلاسهای کمکی
- هوکها - توسعه هسته فریمورک
- بارگذاری خودکار ریسورسها
- فانکشنهای عمومی
- فانکشنهای سازگاری
- مسیریابی URI
- هندل کردن خطاها
- کش کردن صفحات وب
- ارزیابی و تجزیه و تحلیل عملکرد اپلیکیشن
- اجرای کدایگنایتر به وسیله خط فرمان
- مدیریت چندین اپلیکیشن
- هندل کردن محیطهای چندگانه
- سینتکس جایگزین PHP برای فایلهای ویو
- Security در صف ترجمه
- راهنمای کدنویسی در PHP
- لایبرریها در صف ترجمه
- کلاس بنچمارک
- درایور کش در صف ترجمه
- Calendaring Class در صف ترجمه
- Shopping Cart Class در صف ترجمه
- Config Class در صف ترجمه
- Email Class در صف ترجمه
- Encrypt Class در صف ترجمه
- Encryption Library در صف ترجمه
- File Uploading Class در صف ترجمه
- Form Validation در صف ترجمه
- FTP Class در صف ترجمه
- Image Manipulation Class در صف ترجمه
- Image Manipulation Class در صف ترجمه
- Javascript Class در صف ترجمه
- کلاس زبان
- Loader Class در صف ترجمه
- کلاس مایگریشن
- Output Class در صف ترجمه
- Pagination Class در صف ترجمه
- Template Parser Class در صف ترجمه
- Security Class در صف ترجمه
- Session Library در صف ترجمه
- HTML Table Class در صف ترجمه
- Trackback Class در صف ترجمه
- کلاس تایپوگرافی در صف ترجمه
- Unit Testing Class در صف ترجمه
- URI Class در صف ترجمه
- User Agent Class در صف ترجمه
- XML-RPC and XML-RPC Server Classes در صف ترجمه
- کلاس انکود کردن آرشیو Zip در صف ترجمه
- رفرنس دیتابیس در صف ترجمه
- شروع سریع دیتابیس: کد نمونه
- پیکربندی دیتابیس در صف ترجمه
- Connecting to your Database در صف ترجمه
- Queries در صف ترجمه
- Generating Query Results در صف ترجمه
- Query Helper Methods در صف ترجمه
- Query Builder Class در صف ترجمه
- Transactions در صف ترجمه
- Database Metadata در صف ترجمه
- فراخوانی سفارشی فانکشن
- Database Caching Class در صف ترجمه
- Database Forge Class در صف ترجمه
- Database Utility Class در صف ترجمه
- DB Driver Reference در صف ترجمه
- هلپرفانکشنها
- هلپرفانکشن Array
- هلپرفانکشن CAPTCHA در صف ترجمه
- هلپرفانکشن Cookie
- Date Helper در صف ترجمه
- هلپرفانکشن Directory
- Download Helper در صف ترجمه
- Email Helper در صف ترجمه
- File Helper در صف ترجمه
- هلپرفانکشن Form در صف ترجمه
- HTML Helper در صف ترجمه
- Inflector Helper در صف ترجمه
- هلپرفانکشن Language
- هلپرفانکشن Number
- Path Helper در صف ترجمه
- Security Helper در صف ترجمه
- Smiley Helper در صف ترجمه
- هلپرفانکشن String
- Text Helper در صف ترجمه
- Typography Helper در صف ترجمه
- URL Helper در صف ترجمه
- XML Helper در صف ترجمه