سؤال

لسبب ما في CI 2.0 لا تعمل عناوين URL.

http://localhost/myapp/ - will open the default controller (bc it finds index.php)
http://localhost/myapp/index.php/home/ - will open the default controller 
http://localhost/myapp/home/ - will show path not found

لست متأكدًا مما إذا كانت هذه مشكلة مع 2.0 أو مشكلة محددة في التكوين الخاص بي.

أقوم بتشغيل Apache 2 على Mac OS X Snow Leopard.

بحثت عن حل .htaccess ، لكنني لم أتمكن من العثور على أي شيء لـ CI 2.0.

هل كانت مفيدة؟

المحلول 2

كانت المشكلة الحقيقية هي أنه في Snow Leopard ، فإن تكوين الدليل الفعلي عادة ما يكون موجودًا في/pervist هناك لذلك يجب عليك الذهاب وإصلاحه يدويًا ، حتى لو تم تمكينه في httpd.conf العادية

مخادع. شكرا لكم جميعا. وإلا فإن كل ما تحتاجه هو المعتاد.

نصائح أخرى

هل لديك قاعدة إعادة كتابة في Apache للتعامل مع Codeigniter مثل هذا؟ نرى: http://codeigniter.com/wiki/mod_rewrite/

  • أول واحد بشكل افتراضي سيعمل (الافتراضيات إلى index.php)
  • ثانية ستعمل واحد لأنك تمريرها إلى index.php
  • الثالث لن دون قاعدة إعادة الكتابة.

.htaccess ستعمل حلول CodeignIter 1.7 أيضًا لـ Codeigniter 2.0. .htaccess يستخدم لتكوين خادم الويب Apache ، وهو مستقل عن Codeigniter.

(التكوين المقترح من دليل Codeigniter لذلك يجب أن تعمل بشكل جيد.)

$ sudo sudo chgrp staff /Library/WebServer/Documents/
$ sudo chmod 775 /Library/WebServer/Documents/

بعد ذلك سيكون كل تطبيقي ضمن المجلد/المكتبة/خادم الويب/المستندات/

مثل "الاختبار"

/مكتبة/خادم ويب/مستندات/اختبار

$ echo "Hello World" >> /Library/WebServer/Documents/testing/index.php
http://localhost/testing 
==> it should appear Hello World

الآن تحت المجلد/المكتبة/خادم الويب/المستندات/"ستقوم بوضع مجلد CI الذي سيتعين عليك إضافة

.htaccess 

RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteRule ^(.+)$ index.php?$1 [L]
AddHandler php5-script .php

على ci_folder/application/config.php

$config['index_page'] = '';

وأعتقد أن هذا كل شيء! يتمتع!

يمكن ان تجدها هنا. يقع أدناه "إزالة ملف INDEX.PHP".

إزالة ملف index.php

بشكل افتراضي ، سيتم تضمين ملف index.php في عناوين URL:

example.com/index.php/news/article/my_article يمكنك بسهولة إزالة هذا الملف باستخدام ملف .htaccess مع بعض القواعد البسيطة. فيما يلي مثال على هذا الملف ، باستخدام الطريقة "السلبية" التي يتم بها إعادة توجيه كل شيء باستثناء العناصر المحددة:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

في المثال أعلاه ، يتم التعامل مع أي طلب HTTP بخلاف ذلك الخاص بـ INDEX.PHP ، والصور ، و robots.txt كطلب لملف index.php الخاص بك.

أفضل طريقة هي تثبيت XAMPP ، اعمل معي.

ما عليك سوى إيقاف Apache المحلي ووضع تطبيقك في HTDOCS (XAMPP).

سترى طلبك يطيع عناوين URL الودية.

حظا طيبا وفقك الله

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top