Как вызвать функцию codeigniter controller без URL без индекса

Я хочу вызвать функцию класса codeigniter. но это не работает, я хочу удалить index.php из URL

введите описание изображения здесь

С index.php это хорошо работает Как удалить index.php из url?

введите описание изображения здесь

Я изменился

$config['index_page'] = 'index.php'; 

к

  $config['index_page'] = ''; 

но это не сработало

Вы должны выполнить две задания, чтобы удалить index.php из URL.

1-я работа –

изменил конфигурационный файл

  $config['index_page'] = 'index.php'; 

к

  $config['index_page'] = ''; 

(Что вы уже сделали)

2-я работа –

Вы должны добавить файл .htaccess в свой корневой каталог и убедиться, что ваш php mod_rewrite включен.

Для получения дополнительной информации см. Документы RewriteRule .

 RewriteEngine on RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|asset|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L] 

Просто попробуйте это. Надеюсь, он работает, и дайте мне знать, что происходит.

Создайте файл .htaccess в корневом каталоге со следующим содержимым

 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L] 

Хороший список примеров с использованием .htaccess можно найти здесь http://www.askapache.com/htaccess/modrewrite-tips-tricks.html

Добавьте этот файл .htaccess в свой корневой каталог.

 RewriteEngine on RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|asset|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L] 

Попробуйте этот код. Благодарю.

Создайте файл htaccess в нижерасположенном месте, если вы используете xampp

"htdocs / codeigniter / .htaccess"

а затем поместить содержимое htaccess

Изменение в $config['index_page'] было правильным, но вам нужно еще 1 вещь:

Вы должны использовать файл .htaccess в корневом каталоге codeigniter, который переписывает все вызовы в файл index.php без необходимости иметь index.php в строке url

Мой файл выглядит следующим образом:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / ### Canonicalize codeigniter URLs # If your default controller is something other than # "welcome" you should probably change this RewriteRule ^(welcome(/index)?|index(\.php)?)/?$ / [L,R=301] RewriteRule ^(.*)/index/?$ $1 [L,R=301] # Removes trailing slashes (prevents SEO duplicate content issues) RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/$ $1 [L,R=301] # Enforce www # If you have subdomains, you can add them to # the list using the "|" (OR) regex operator RewriteCond %{HTTP_HOST} !^(www|subdomain) [NC] RewriteRule ^(.*)$ http://www.YOURSITE.COM/$1 [L,R=301] # Enforce NO www #RewriteCond %{HTTP_HOST} ^www [NC] #RewriteRule ^(.*)$ http://YOURSITE.COM/$1 [L,R=301] ### # Removes access to the system folder by users. # Additionally this will allow you to create a System.php controller, # previously this would not have been possible. # 'system' can be replaced if you have renamed your system folder. RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php/$1 [L] # Checks to see if the user is attempting to access a valid file, # such as an image or css document, if this isn't true it sends the # request to index.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> <IfModule !mod_rewrite.c> # Without mod_rewrite, route 404's to the front controller ErrorDocument 404 /index.php </IfModule> 

Этот файл также отменяет все вызовы, отличные от www (например, YOURSITE.com на www.YOURSITE.com . Вы также можете сделать это по-другому, тогда вы должны прокомментировать части (с помощью # ) и не рекомендовать часть ниже.

Кроме того, он делает URL-адреса лучше (canocalized URL). если вы посмотрите на следующие URL:

 /category /category/index /category/index/ 

Это 3 url для одной и той же функции в одном контроллере. С помощью .htaccess приведенного выше, URL будет

 /category 

Еще одно важное замечание: для контроллеров с index методом, которые принимают какой-либо параметр, эти URL-адреса будут по-прежнему работать как таковые:

 /welcome/index/123 /category/index/123