Я не могу заставить CodeIgniter правильно настроиться на GoDaddy. Я попытался создать новую функцию внутри контроллера wecome. Но я нигде не могу получить к нему доступ.
http://domain.com/test (No response) <- why doesn't this work http://domain.com/index.php/welcome/test (No response) <- why doesn't this work
И просто, чтобы дать вам представление о том, как разрешается страница приветствия по умолчанию:
http://domain.com/ (resolves to welcome page aka 'index' function) http://domain.com/index.php/ (resolves to welcome page aka 'index' function) http://domain.com/index.php/welcome (No response) <- why doesn't this work? http://domain.com/index.php/welcome/index (No response) <-why doesn't this work?
Как я могу правильно настроить эту настройку?
шаг 1. в вашем файле .htaccess в корневом каталоге установите это:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] RewriteCond %{HTTP_HOST} ^mydomain.com [NC] RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
шаг 2. Откройте файл /system/application/config/config.php и убедитесь, что установлены следующие два параметра.
$config['index_page'] = “”; $config['uri_protocol'] = “AUTO“;
надеюсь, это помогло.
Возможные места, где вы можете искать эту проблему, – это файл .htaccess (никогда не использовался godaddy, но я видел, что у других были разные правила .htaccess для этой хостинговой компании), далее ваш файл application / config / config.php и uri_protocol , экспериментируйте с этим (есть несколько значений, которые вы можете передать), также в зависимости от вашей версии CI вы можете попробовать расширить классы CI_URI или CI_Router, чтобы вставить свою логику где-то рядом, но, как я сказал, это будет сильно зависеть от CI версии от 1.7 до 2.0.2, они внесли несколько изменений в эти классы, отвечающие за маршрутизацию и сопоставление uri, и если вы не можете найти решение, вернитесь и опубликуйте дополнительную информацию.
Попробуйте поставить эту строку:
@ini_set('cgi.fix_pathinfo', 0);
В файле /index.php. Также играйте с настройкой URI_PROTOCOL в config.php.
Для этого откройте файл application / config / config.php и измените это:
$config['index_page'] = "index.php";
К этому:
$config['index_page'] = "index.php?";