• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
defult controller کار نمیکند
#1
سلام دوستان.
بعد از مدتها من دوباره اومدمSmile
من کدایگنایتر رو از نسخه 2.2.2 به 3.1.4 اپدیت کردم ، ولی دیگه defult controller اون کار نمیکنه .
جستجو هم کردم و این سه مورد رو رعایت کردم :
یک : htaccess درست ست بشه .
کد:
Options -Indexes

<Files *.sql>
    Order deny,allow
    Deny from all
</Files>

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond $1 !^(index\.php|images|main|system|robots\.txt)
RewriteRule ^(.+)$ index.php/$1 [L,QSA]
دو : در فایل rutes.php این کد رو نوشتم :
کد پی‌اچ‌پی:
$route['default_controller'] = 'site/page/article'
در config.php هم این باید خالی باشه :
کد پی‌اچ‌پی:
$config['index_page'] = ''

اما کار نمیکنه . و باید حتما مسیر رو کامل در url تایپ کنم :
site/page/article
آرام باش ؛ توكل كن ؛ تفكر كن و سپس آستينها را بالا بزن , آنگاه دستان خداوند را خواهي ديد كه زودتر از تو دست به كار شده است.امام علي عليه السلام.
  پاسخ
تشکر شده توسط :
#2
سلام

در فایل کانفیگ base_url رو تنظیم کردی؟

اون site کنترولر شما هست یا پوشه ؟

قسمت روتتون رو کامل بزارید.

و اسم کنترولرتون رو بگید تا بهتر اهنمایی کنم.

این نکته یادم رفت بگم

اگر در لوکال هاست کار میکنی حتما کد زیر رو هم به فایل htaccess اضافه کن.
کد:
RewriteBase /YourDir/
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط : Y.P.Y pary_daryayi
#3
در لوکال هستم و در برنامه های دیگه درست کار میکرد . الان که ورژن جدید کدایگنایتر رو کار میکنم ، این مورد کار نمیکنه .

بله base_url تنظیمه .
کد پی‌اچ‌پی:
$config['base_url']    = 'http://localhost/mysite/CodeIgniter-3.1.4/'
در کنترلر به این صورته :
site : نام پوشه
page : کنترلر
article : نام متد

اون کدی که برای htaccess گفتید تا بزارم ، به جای yourdir باید اسم فولدر پروژه ی اصلی رو بنویسم ؟
این رو قبلا در htaccess نمیزاشتم و درست کار میکرد .

این رو هم بگم :
فقط defult کار نمیکنه ، در قسمت route.php مسیرهایی رو نوشتم و اونها درست کار میکنند
آرام باش ؛ توكل كن ؛ تفكر كن و سپس آستينها را بالا بزن , آنگاه دستان خداوند را خواهي ديد كه زودتر از تو دست به كار شده است.امام علي عليه السلام.
  پاسخ
تشکر شده توسط :
#4
در فایل روتر فقط میتونید از اسم کنترولر و متد و پارامترهاش استفاده کنید؛ پوشه رو نمیشه استفاده کرد؛ چون کد ایگنایتر میره و داخل پوشه کنترولر چک میکنه ببینه همچین کنترولر و متدی وجود داره یا نه!

گذاشتن متن خطا هم به حل قضیه کمک میکرد.

شما اسم پوشه رو از روتر حذف کنید و فقط اسم کنترولر و متدش رو بزارید.

یعنی دیفالت کنترولر رو از site/page/article به page/article
تغییر دهید.

نقل قول:اون کدی که برای htaccess گفتید تا بزارم ، به جای yourdir باید اسم فولدر پروژه ی اصلی رو بنویسم ؟
بله بجای اون باید دایرکتوری اصلی پروژه رو بنویسید.

نکته: بهتره پروژتون در همچین آدرسی قرار بدید و تست کنید.
کد:
http://localhost/YourProjectDir
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط : pary_daryayi
#5
(۱۳۹۶ اردیبهشت ۲۴, ۰۷:۲۴ ب.ظ)farhadhp نوشته: گذاشتن متن خطا هم به حل قضیه کمک میکرد.

خطای 404 page not found

جستجو کردم در این صفحه گفته تغییراتی در ruter.php انجام بدید .
با توجه به تغییرات تاحدودی درست شد
اینجا

از اینکه وقت گزاشتید ممنونم
آرام باش ؛ توكل كن ؛ تفكر كن و سپس آستينها را بالا بزن , آنگاه دستان خداوند را خواهي ديد كه زودتر از تو دست به كار شده است.امام علي عليه السلام.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان