【发布时间】:2019-09-06 10:37:22
【问题描述】:
我正在使用 Godaddy linux 托管,并在其上部署了 codeigniter 源代码。它在本地主机上工作得非常好。我的默认控制器名称是“欢迎”。
当我在输入后按登录按钮尝试登录时 用户名和密码,不写默认控制器名称 网址然后显示“不允许您请求的操作”。在某些地方它工作正常。这是我的写作方式 网址'https://www.example.com'
当我在 url 中写入默认控制器名称时,输入用户名和密码,然后按登录按钮。它工作正常。这是我的写作方式 https://www.example.com/Welcome
-
当我从 配置文件中的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