كيفية إعداد .htaccess لكوهانا بشكل صحيح، بحيث لا يوجد "index.php /" قبيح في عنوان URL؟

StackOverflow https://stackoverflow.com/questions/966429

  •  12-09-2019
  •  | 
  •  

سؤال

بعد ساعتين الآن لم أستطع الحصول عليها بشكل صحيح.

يمكن الوصول إلى Kohana Internetable مباشرة تحت نطاقي، أي "http://something.org/"

بدلا من http://something.org/index.php/welcomde/index. أريد أن يكون لديك عناوين URL http://something.org/welcome/index.

بلدي .htaccess هو افسدت تماما. انها في الواقع المثال القياسي. htaccess المراد مع التنزيل. انها تقريبا عديمة الفائدة. في صفحة Kohana هو برنامج تعليمي "كيفية إزالة الفهرس .php". من غير المجدي حقا، لأنه لن يتحدث حتى كيفية إزالته. مربكة تماما.

من فضلك، هل يمكن لشخص ما توفير عمله. htaccess لتثبيت كوهانا القياسية؟

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

المحلول

بلدي htaccess يشبه المثال.

RewriteEngine On

RewriteBase /

RewriteRule ^(application|modules|system) - [F,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule .* index.php/$0 [PT,L]

ولكن عليك أيضا تغيير config.php. ملف إلى:

$config['index_page'] = '';

نصائح أخرى

هذا هو ملف .htaccess لدينا الآن، ويبدو أن يعمل.

RewriteEngine On

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]

لاحظ أن لدينا دلائل تطبيقنا ونظامنا وحجزها خارج جذر الويب.

على بعض المضيفين، أعتقد أنه عكس ذلك عند تشغيل PHP في وضع CGI، يجب عليك تغيير

RewriteRule ^(.*)$ index.php/$1 [L]

ل

RewriteRule ^(.*)$ index.php?/$1 [L]

في htaccess الخاص بك. لذلك أساسا يمكنك استخدام كوهانا الإعداد الموصى بها, ، ببساطة استبدال index.php/$1 مع index.php?/$1

جرب قاعدة MOD_REWRITE:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php index.php%{REQUEST_URI} [L]

بالنسبة لأولئك الذين يحصلون على "خطأ ممنوع" 403 على OSX مع الافتراضي .htaccess تأكد من إضافة كطريق أول في .htaccess

خيارات + متابعة

Kohana 3.2 لديه اتفاقية مختلفة. إذا نظرت إلى kohana_url ستجد توقيع الوظيفة التالية:

public static function site($uri = '', $protocol = NULL, $index = TRUE)

حيث مؤشر $ افتراضي إلى True. من خلال تمرير فهرس $ False، ستفعل المرجع index.php.

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