Проблема маршрутизации Codeigniter Index Controller - PullRequest
4 голосов
/ 13 ноября 2010

У меня есть имя контроллера индекса Index.php в каталоге / system / application / controller /

, и я установил правила .htacesss

RewriteEngine для RewriteCond $ 1! ^ (Включая|| index.php | images | robots.txt) RewriteRule ^ (. *) $ /index.php/$1 [L]

и я включаю $ route ['default_controller'] = "index";

и я config $ config ['index_page'] = "";

, и у меня есть действие index в моем контроллере

, когда я получаю доступ к http://domain/index/index/enу меня будет 404

, когда я получу доступ http://domain/index/index/index/en будет в порядке

, и я пытаюсь отобразить сегменты $ this-> uri-> в Libraries / Router.php

обнаружите, что если я запрашиваю с index / index / en, он возвращает только индекс и en

, если я запрашиваю index / index / index / en, он возвращает index, index и en,

какci route logic: первый сегмент - это имя контроллера, а второй - действие

, это можно решить ????просто не хочу слишком длинный URL на домашней странице

1 Ответ

10 голосов
/ 14 ноября 2010

Документация фактически утверждает, что контроллер не может быть назван "index", потому что это зарезервированное слово.

Если вы хотите получить красивые URL-адреса, вы должны оставить контроллер по умолчанию таким, каким он был изначально, и оставить переменную $ config ["index_page"] пустой.

Затем создайте этот файл .htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]

Это сделало бы КИ и вас счастливой парой ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...