Удаление индекса.php из codeginiter url используя htaccess не работает на сервере


.код htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

Также изменение в файле конфигурации:

$config['index_page'] = ' ';

$config['uri_protocol'] = "REQUEST_URI";

Mod_rewrite также включен. хотя этот код не работает.

4 2

4 ответа:

Измените это

В ' config.php '

$config['base_url'] = '';
$config['index_page'] = ''
$config['uri_protocol'] = 'AUTO';

.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

И доступ к URL должен осуществляться с помощью функции base_url().

Ex <form action="<?php echo base_url()?>Controller_name/Method_name"

Примечание: чтобы использовать base_url() , Вы должны включить его на autoload.php

$autoload['helper'] = array('url');

Нельзя использовать протокол REQUEST_URI, Когда вы просите Apache отправить URI в QUERY_STRING.

Так что либо измените ваш .htaccess или ваш конфиг, чтобы они соответствовали. Моя рекомендация-изменить .htaccess:

RewriteRule ^ index.php [L]

Вы пробовали давать AUTO вместо REQUEST_URI? Даже у меня была похожая проблема, но она была решена, когда я изменил ее на AUTO и небольшое изменение .htaccess в моем случае.

$config['index_page'] = '';

$config['uri_protocol'] = 'AUTO';

.htaccess -

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
RewriteRule .* index.php/$0 [PT,L] 

Если это не работает для вашего случая, извините.

CodeIgniter htaccess и URL проблемы перезаписи

У меня есть запущенное приложение CI 3 и прекрасно с этим работающее .htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>