CodeIgniter仅显示默认控制器

Kar*_*Sho 8 php .htaccess codeigniter

我在Local WAMP中使用Codeigniter .代码工作正常.但我上传到Cpanel(在example.com内部,文件夹名称调用' mysite').我改变了,

  • db_name(config/database.php)
  • db_user_name(config/database.php)
  • db_password(config/database.php)
  • base_url为http://example.com/mysite(config/config.php)
  • uri_protocol为REQUEST_URI(config/config.php)

并且还改为.htaccess(mysite/.htaccess),

<IfModule mod_rewrite.c>

RewriteEngine On

# Set the rewritebase to your CI installation folder
RewriteBase /mysite/


# Send everything to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

但不是在mysite/application/.htaccess中.它是空的.

问题是,如果我去http://example.com/mysite,它会正确显示默认页面.但是如果我点击任何链接(http://example.com/mysite/user/signin),它会显示相同的默认页面.但URL已更改.

请帮帮我...

config.php文件

$config['base_url'] = 'http://example.com/mysite';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
$config['url_suffix'] = '';
$config['language'] = 'english';
$config['charset'] = 'UTF-8';
$config['enable_hooks'] = FALSE;
$config['subclass_prefix'] = 'MY_';
$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';
$config['log_threshold'] = 0;
$config['log_path'] = '';
$config['log_date_format'] = 'Y-m-d H:i:s';
$config['cache_path'] = '';
$config['encryption_key'] = '***';
$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;
$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "/";
$config['cookie_secure']    = FALSE;
$config['global_xss_filtering'] = FALSE;
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['compress_output'] = FALSE;
$config['time_reference'] = 'local';
$config['rewrite_short_tags'] = FALSE;
$config['proxy_ips'] = '';
define('CSS_FOLDER' , 'application/assets/css');
define('DEFAULT_IMAGE_URL' , 'application/assets/images/default');
Run Code Online (Sandbox Code Playgroud)

routes.php文件

$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['user/(:any)'] = 'user/index';
Run Code Online (Sandbox Code Playgroud)

Xav*_* W. 6

$config['base_url'] = 'http://example.com/mysite/';
Run Code Online (Sandbox Code Playgroud)

比以下更好:

$config['base_url'] = 'http://example.com/mysite';
Run Code Online (Sandbox Code Playgroud)

试试这个 :

RewriteBase /

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /mysite/index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)