Это новый для меня. Я переношу сайт, созданный в codeigniter, на сервер общего хостинга Godaddy. Я могу попасть на домашнюю страницу с:
http://www.example.com
Но когда я пытаюсь перейти на другие страницы, такие как:
http://www.example.com/about-us/
Это выдает мне это сообщение об ошибке:
Не найдено
Запрошенный URL /example/index.php/about-us/ не найден на этом сервере.
Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 404 Not Found.
Если я использую:
http://www.example.com/index.php/about-us/
Страница выглядит ясной, как день.
Я искал обходной путь CI, но мой сайт больше статических страниц, чем динамических страниц.
В целом, мой вопрос: что я делаю неправильно, и имеет ли это какое-либо отношение к наличию учетной записи Godaddy Shared Hosting?
.htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Файл конфигурации CI
$config['base_url'] = '';
$config['index_page'] = '';
$config['uri_protocol'] = 'QUERY_STRING';
Файл автозагрузки CI
$autoload['helper'] = array('url');
09-30-2011 Обновление:
В .htaccess использовать:
# Options
Options -Multiviews
Options +FollowSymLinks
#Enable mod rewrite
RewriteEngine On
#the location of the root of your site
#if writing for subdirectories, you would enter /subdirectory
RewriteBase /
#Removes access to CodeIgniter system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css
#folders, and the robots.txt file
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php?/$1 [L]
В конфигурационном файле CI:
$config['index_page'] = "";
$config['uri_protocol'] = "AUTO";
Источник: codeigniter.com / wiki / Godaddy_Installaton_Tips