Я использую CI версии 3.1.0
и внутри моего файла httacces, как это
RewriteEngine on RewriteCond $1 !^(index\.php|public|\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1
и я меняю свой конфигурационный файл на $config['index_page'] = ''
Я работаю, но CI, похоже, не может найти контроллер, запрашивающий fromm url. пример localhost/site/index.php/welcome
его работу, как ожидалось, но при запросе его с localhost/site/welcome
я получил 404 страницы не найден.
Не могли бы вы попытаться заменить последнюю строку на
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Это немного зависит от хостинга, я тоже заметил, что это может не сработать. Включен ли mod_rewrite или эквивалент?
Если ваше приложение запущено внутри каталога / сайта /, что вы положили в $ config ['base_url']?
Я использую это:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Если вы уже выполните следующее: учебное пособие , вам нужно установить директиву AllowOverride
для all
в том пути, где находится ваше приложение. Это необходимо, потому что вы используете файл .htaccess
. Больше .
Если для этой директивы установлено значение None и AllowOverrideList установлено значение None, файлы .htaccess полностью игнорируются. В этом случае сервер даже не попытается прочитать файлы .htaccess в файловой системе.
Запомнить:
Вы должны полностью избегать использования файлов .htaccess, если у вас есть доступ к конфигурационному файлу httpd main server. Использование файлов .htaccess замедляет ваш HTTP-сервер Apache. Любая директива, которую вы можете включить в файл .htaccess, лучше устанавливается в блоке Directory, так как она будет иметь тот же эффект с лучшей производительностью.
Это рекомендация разработчика: вот .