У меня есть следующая структура моего проекта
/system /applications /cache /core /helpers /hook /language /libraries /logs /third_party /admin-panel /config /controllers welcome.php dashboard.php /errors /models /views welcome.php dashboard.php /user-panel /config /controllers welcome.php dashboard.php /errors /models /views welcome.php dashboard.php /admin index.php index.php
У моего index.php внутри моей папки проекта есть панель пользователя, так как моя папка приложения и index.php в папке администратора имеют панель администратора в качестве папки моего приложения.
Я вставил эту строку $ route ['default_controller'] = "welcome"; $ route ['welcome'] = 'welcome'; в routes.php внутри панели пользователя и панели администратора
Я могу получить доступ к контроллеру приветствия моей панели пользователя и администратора с помощью http://localhost/myproject and http://localhost/myproject/admin
но я не могу получить доступ к контроллеру панели управления с помощью http://localhost/myproject/dashboard or http://localhost/myproject/admin/dashboard
мой контроллер панели управления доступен с помощью http://localhost/myproject/index.php/dashboard or http://localhost/myproject/admin/index.php/dashboard
Но я не хочу, чтобы index.php был включен в мой url. Я хочу удалить его. Я также пробовал использовать .htaccess внутри папки admin. Я пишу следующую строку в этом
RewriteEngine On RewriteCond $1 !^(index\.php|(.*)\.swf|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L]
но это не сработало для меня. Он дает 404 не найденную ошибку CI. Я также включил mod_rewrite, изменив AllowOerride None на AllowOverride All в httpd.conf. Скажите, пожалуйста, что мне делать, чтобы удалить index.php и где я должен поместить файлы .htaccess в свою директорию проектов.
если ваша корневая папка для проекта не является корневым доменом, т. е. ваш сайт является подкаталогом домена http://localhost/myproject
тогда вам понадобится дополнительная строка в вашем файле .htaccess, который является RewriteBase
RewriteEngine On RewriteBase /myproject RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Также убедитесь, что ваш config.php настроен как
$config['base_url'] = 'http://localhost/myproject/'; $config['index_page'] = '';
И mod_rewrite включен в конфигурационном файле apache.
Откройте config.php из каталога system / application / config
и заменить
$ config ['index_page'] = "index.php" по $ config ['index_page'] = ""
Создайте файл «.htaccess» в корне каталога CodeIgniter
и добавьте следующие строки.
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
В некоторых случаях настройка по умолчанию для uri_protocol работает неправильно.
Чтобы решить эту проблему, просто замените
`$config['uri_protocol'] = “AUTO”`
от
$config['uri_protocol'] = “REQUEST_URI”
из системы / application / config / config.php
Убедитесь в следующем:
Посмотрите в файле config.php, есть переменная с именем 'index_page'
попробуйте изменить
$config['index_page'] = "index.php";
в
$config['index_page'] = "";