проблема мод-перезаписи в codeigniter

Я разрабатываю сайт на своем локальном хосте (приложение Usbwebserver). Я использую фреймворк CodeIgniter:

URL: "http://localhost/daniel/index.php"

со следующими параметрами:

config / routs:

$route['default_controller'] = "site";

config / config:

$config['base_url'] = "http://localhost/daniel";
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";

Я пробовал использовать следующий код .htaccess:

RewriteEngine на RewriteBase /

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

# If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin

ErrorDocument 404 /index.php

Я хочу удалить index.php и загрузить свой контроллер по умолчанию с помощью http://localhost/daniel.

Какие-либо предложения?


person Konstantine Kalbazov    schedule 13.10.2009    source источник


Ответы (2)


Пытаться:

RewriteRule ^(.*)$ /daniel/index.php?/$1 [L]
person Matthew Rapati    schedule 13.10.2009
comment
Я пробовал это и думаю, что это сработало, я имею в виду, что localhost / daniel / site перенаправил меня на index.php . Однако он показывает 404 Page Not Found, созданный CodeIgniter. Я добавил эхо в начало index.php, и оно отразилось правильно. Думаю, проблема в настройках codeigniter. (чуть не забыл упомянуть, что у меня папка с приложением находится вне системной папки) - person Konstantine Kalbazov; 13.10.2009
comment
глупый вопрос, но ведь у вас ведь есть контроллер с именем site? - person Matthew Rapati; 13.10.2009
comment
Я как-то это поправил. Я не знаю, что на самом деле было матовее - person Konstantine Kalbazov; 14.10.2009

Я использовал hataccess из codigniter wiki (тот же, что у меня был выше):

RewriteEngine на RewriteBase /

# Removes the "/" at the end
RewriteRule (.+)/$ /$1 [L,R]

RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ daniel/index.php?/$1 [L]

# Если у нас не установлен mod_rewrite, все сообщения 404 # могут быть отправлены в index.php, и все будет работать как обычно. # Отправлено: ElliotHaughin

ErrorDocument 404 /index.php

При все той же опции только $ config ['uri_protocol'] = "AUTO" (вместо URI_PROTOCOL) и как-то начало работать (а у меня папка приложения вне системной папки)

Спасибо всем, кто любезно мне ответил!

person Konstantine Kalbazov    schedule 13.10.2009