Хорошо, поэтому я знаю, что многие люди задают одни и те же или подобные вопросы, но я, похоже, не нахожу решение, которое работает для моего проекта. Поэтому, пожалуйста, не ставьте это как дубликат.
У меня есть веб-сайт с кодом. Он просто отлично работал без index.php в URL-адресе. Так переписывание было успешным. До недавнего времени: внезапно область администрирования (/ admin) вернула 404 и была доступна только по пути «/index.php/admin». Код перезаписи, который когда-то использовался, больше ничего не делал.
И знаю, что я вернулся в начале -> проблема в том, что я не могу удалить index.php из моего url.
Я пробовал так много вещей, что я не знаю, что делать дальше.
Приложение хранится в разделе «public_html / application / … Изображение ниже находится в папке приложения, где находятся файл .htaccess и index.php. Является ли это правильным местом для изменения .htaccess?
Я пробовал переписывать .htaccess, но безуспешно:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L] RewriteEngine on RewriteCond $1 !^(index\.php|public|\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^CI/(index\.php|public|images|robots\.txt|css) RewriteRule ^(.*)$ /index.php/$1 [L] RewriteEngine on RewriteCond $1 !^(index\.php|images|robots|css\.txt) RewriteRule ^(.*)$ /index.php/$1 [L]
Мой конфигурационный файл:
$config['base_url'] = 'http://www.mysite.be/'; $config['index_page'] = ''; $config['uri_protocol'] = 'AUTO';
routes.php:
$route['default_controller'] = "c_home/index"; $route['404_override'] = ''; $route['admin'] = "c_home/adminpanel"; $route['logout'] = "c_login/logout";
Кто-нибудь знает, что происходит или как это можно исправить?
Заранее спасибо!
.htaccess должен находиться в каталоге public_html – то есть: на один уровень выше текущего местоположения. Index.php предположительно находится в public_html уже, а индекс. * У вас на картинке index.html – как и должно быть. Если .htaccess находится в правильном месте в соответствии с приведенным выше, то этот код .htaccess будет работать:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
Таким образом, я был возиться с этим и, наконец, сделал его работу
Для этого я внес изменения в htaccess и контроллеры.
Я изменил функцию администратора на новый контроллер и изменил его на route.php
новая маршрутизация
$route['admin'] = "c_login/index";
новый .htaccess
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]
Попробуйте установить
$config['uri_protocol'] = 'PATH_INFO'
И установите
$config['enable_query_strings'] = FALSE;
Если нам нужно удалить /index.php из url в codeigniter Than
$config['index_page'] = ''; $config['uri_protocol'] = 'REQUEST_URI';
RewriteEngine on RewriteBase /[Your project folder name]/ RewriteCond $1 !^(index.php|resources|robots.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Теперь вы можете получить доступ, как
http://example.com/controller/method
Пусть это будет полезно для вас
Я не знаю, что вы делаете со всем этим кодом, но я просто поместил это в свой файл .htaccess:
RewriteRule ^(.*)$ /index.php?/$1 [L]
И бум.