简体   繁体   English

CodeIgniter | .htaccess从网址中删除index.php

[英]CodeIgniter | .htaccess removing index.php from url

ok, i did exactly as asked in the documentation of codeigniter, created new file .htaccess 好的,我完全按照codeigniter文档中的要求进行操作,创建了新文件.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

i am using xampp, so my url for accessing the site was 我正在使用xampp,所以我访问该网站的网址是

http://localhost:12/projects/zorkif_nextgen/index.php/main

now after applying the above .htaccess file, i tried it without index.php like this 现在在应用上述.htaccess文件后,我尝试了不使用index.php这样的文件

http://localhost:12/projects/zorkif_nextgen/main

but instead of working, it is redirecting me to this url 但是没有工作,而是将我重定向到此网址

http://localhost:12/xampp

How to resolve this issue? 如何解决这个问题?

plus i am getting error on my page after trying the .htaccess 再加上尝试.htaccess后,页面上出现错误

on top of page message is appearing, 在页面顶部出现消息,

 Error Occured.
Warning!. Make sure you perform the correct action.
The Action has been completed Successfully. 

Edit: 编辑:

Here is some of my config.php file settings 这是我的一些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'] = 'a-z 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;

this is works well for me: 这对我来说很好:

1- create .htaccess file in the root folder with the following content 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- from the config file change $config['index_page'] = 'index.php'; 2-从配置文件中更改$config['index_page'] = 'index.php'; to $config['index_page'] = ''; $config['index_page'] = '';

尝试将RewriteBase定义为/ projects / zorkif_nextgen

RewriteBase /projects/zorkif_nextgen

Try the following 尝试以下

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]

You can try this 你可以试试这个

<IfModule mod_rewrite.c> 
   RewriteEngine on 
   RewriteCond $1 !^(index\.php|images|swf|uploads|js|css|robots\.txt) 
   RewriteRule ^(.*)$ /ci/index.php/$1 [L] 
</IfModule>

For future reading This will help you Codeigniter remove index php from url using htaccess 为了将来阅读,这将帮助您Codeigniter使用htaccess从网址中删除索引php

You may have look at config/routes.php. 您可以查看config / routes.php。

It may have been set to a default controller. 它可能已设置为默认控制器。

Don't use an .htaccess file to remove index.php from your URLs. 不要使用.htaccess文件从您的网址中删除index.php。 This is an issue in your config. 这是您配置中的问题。 Look specifically at $config['base_url'] and $config['index_page'] 专门查看$config['base_url']$config['index_page']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM