#php #.htaccess #codeigniter #codeigniter-4
#php #.htaccess #codeigniter #codeigniter-4
Вопрос:
При удалении index.php с URL-адреса я получаю сообщение об ошибке Not found
От: — http://localhost/Inspire/index.php/welcome/dashboard
к этому
http://localhost/Inspire/welcome/dashboard
.htaccess
RewriteEngine on
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
config.php
$config['index_page'] = '';
Комментарии:
1. Не могли бы вы сообщить нам, с какого URL-адреса на какой URL-адрес вы пытаетесь перенаправить здесь для большей ясности, пожалуйста
2. Пожалуйста, просмотрите вопрос сейчас.
3. $config [‘uri_protocol’] = «REQUEST_URI» автоматически измените это
4. Все еще получаю ту же ошибку
5. где вы создаете файл .htaccess??
Ответ №1:
В Codeigniter 4 есть два разных файла .htaccess, вам нужно изменить один в общей папке:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Ответ №2:
Согласно вашему комментарию, он находится внутри папки приложения, поэтому он неправильный. Вы должны создать его внутри корневой папки веб-сайта.
Шаг: -1 Перейдите в корневую папку CodeIgniter и создайте .htaccess
Path:
Your_website_folder/
.htaccess <——— this file
application/
assets/
system/
index.php
Напишите приведенный ниже код в .htaccess
файле
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
Шаг: -2 Откройте папку application/config
и откройте файл config.php
. найдите и замените приведенный ниже код в config.php
файле.
//find the below code
$config['index_page'] = "index.php"
//replace with the below code
$config['index_page'] = ""
Ответ №3:
Мне пришлось изменить строку:
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
из файла htaccess в общедоступной папке в:
RewriteRule ^(.*)$ index.php?/$1 [L]
Комментарии:
1. все еще нужен QSA для серверов на базе Linux
2. По какой-то причине мне это не понадобилось на нашем сервере Debian. Можете ли вы объяснить мне, что это означает?