хорошо, я точно так же спросил в документации на codeigniter, создал новый файл .htaccess
RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L]
Я использую xampp, поэтому мой url для доступа к сайту был
http://localhost:12/projects/zorkif_nextgen/index.php/main
теперь после применения вышеуказанного файла .htaccess я пробовал его без index.php, как это
http://localhost:12/projects/zorkif_nextgen/main
но вместо того, чтобы работать, он перенаправляет меня на этот URL-адрес
http://localhost:12/xampp
Как решить эту проблему?
плюс я получаю ошибку на моей странице после попытки .htaccess
появляется сообщение вверху страницы,
Error Occured. Warning!. Make sure you perform the correct action. The Action has been completed Successfully.
Редактировать:
Вот некоторые из моих настроек файла config.php
$config['base_url'] = ''; $config['index_page'] = 'index.php'; $config['uri_protocol'] = 'AUTO'; $config['url_suffix'] = ''; $config['enable_hooks'] = FALSE; $config['permitted_uri_chars'] = 'az 0-9~%.:_\-'; $config['allow_get_array'] = TRUE; $config['enable_query_strings'] = FALSE; $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm'; $config['directory_trigger'] = 'd'; // experimental not currently in use $config['sess_cookie_name'] = 'zk_ci_session'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = TRUE; $config['sess_encrypt_cookie'] = TRUE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'sys_ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300; $config['csrf_protection'] = TRUE; $config['csrf_token_name'] = 'csrf_test_name'; $config['csrf_cookie_name'] = 'csrf_cookie_name'; $config['csrf_expire'] = 7200; $config['rewrite_short_tags'] = FALSE;
Попробуйте определить RewriteBase для / projects / zorkif_nextgen
RewriteBase /projects/zorkif_nextgen
это хорошо работает для меня:
1- создать файл .htaccess в корневой папке со следующим содержимым
RewriteEngine on RewriteCond $1 !^(index\.php|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]
2- из файла конфигурации config $config['index_page'] = 'index.php';
to $config['index_page'] = '';
Попробуйте следующее
RewriteEngine on RewriteBase / # Hide the application and system directories by redirecting the request to index.php RewriteRule ^(application|system|\.svn) index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA,L]
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
Вы можете попробовать это
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt) RewriteRule ^(.*)$ /ci/index.php/$1 [L] </IfModule>
Для будущего чтения Это поможет вам Codeigniter удалить индекс php из url, используя htaccess
Вы можете посмотреть config / routes.php.
Возможно, он настроен на контроллер по умолчанию.
Не используйте файл .htaccess для удаления index.php из ваших URL-адресов. Это проблема в вашей конфигурации. Посмотрите конкретно на $config['base_url']
и $config['index_page']