Я хочу вызвать функцию класса 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