【问题标题】:Codeigniter default controller issue on Godaddy linux hostingGodaddy linux主机上的Codeigniter默认控制器问题
【发布时间】:2019-09-06 10:37:22
【问题描述】:

我正在使用 Godaddy linux 托管,并在其上部署了 codeigniter 源代码。它在本地主机上工作得非常好。我的默认控制器名称是“欢迎”。

  1. 当我在输入后按登录按钮尝试登录时 用户名和密码,不写默认控制器名称 网址然后显示“不允许您请求的操作”。在某些地方它工作正常。这是我的写作方式 网址'https://www.example.com'

  2. 当我在 url 中写入默认控制器名称时,输入用户名和密码,然后按登录按钮。它工作正常。这是我的写作方式 https://www.example.com/Welcome

  3. 当我从 配置文件中的base_url,它在某些位置可以正常工作,但不能 在其他一些地方工作。 这是我的配置文件

    $config['base_url'] = 'https://www.example.com/';
    
    $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['composer_autoload'] = FALSE;
    
    $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-@';
    
    $config['enable_query_strings'] = FALSE;
    $config['controller_trigger'] = 'c';
    $config['function_trigger'] = 'm';
    $config['directory_trigger'] = 'd';
    
    $config['allow_get_array'] = TRUE;
    
    $config['log_threshold'] = 0;
    
    $config['log_path'] = '';
    
    $config['log_file_extension'] = '';
    
    $config['log_file_permissions'] = 0644;
    $config['log_date_format'] = 'Y-m-d H:i:s';
    $config['error_views_path'] = '';
    $config['cache_path'] = '';
    $config['cache_query_string'] = FALSE;
    $config['encryption_key'] = '';
    $config['sess_driver'] = 'files';
    $config['sess_cookie_name'] = 'ci_session';
    $config['sess_expiration'] = 7200;
    $config['sess_save_path'] = NULL;
    $config['sess_match_ip'] = FALSE;
    $config['sess_time_to_update'] = 300;
    $config['sess_regenerate_destroy'] = FALSE;
    
    $config['cookie_prefix']    = '';
    $config['cookie_domain']    = '';
    $config['cookie_path']      = '/';
    $config['cookie_secure']    = FALSE;
    $config['cookie_httponly']  = FALSE;
    
    $config['standardize_newlines'] = FALSE;
    
    $config['global_xss_filtering'] = FALSE;
    
    $config['csrf_protection'] = True;
    $config['csrf_token_name'] = 'csrf_snt_token';
    $config['csrf_cookie_name'] = 'csrf_cookie_snt';
    $config['csrf_expire'] = 7200;
    $config['csrf_regenerate'] = TRUE;
    $config['csrf_exclude_uris'] = array();
    
    
    $config['compress_output'] = FALSE;
    
    
    $config['time_reference'] = 'local';
    
    
    $config['rewrite_short_tags'] = FALSE;
    
    $config['proxy_ips'] = '';   
    

我不知道哪里做错了。我希望它甚至不需要在 url 中写入默认控制器名称就可以工作。任何帮助将不胜感激:)

【问题讨论】:

  • 您需要查看 Routes 区域/文件 - 它决定了用户如何在您的应用中移动
  • 路由文件中除了默认控制器名称外没有任何内容
  • 我认为问题出在 .htaccess 文件上。你需要编写重写规则和重写条件。

标签: php codeigniter csrf-protection


【解决方案1】:

使用 CI_Docs URL 中提供的 htaccess 代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多