Я сделал приложение CodeIgniter. Его работающая так классная на моем местном, но когда я развертываю ее в основном, все мои страницы перенаправляются на домашнюю страницу.
У меня есть следующая структура каталогов:
— WWW
—–. Htaccess
—— codeIgniter (приложение работает здесь).
Мой htaccess читается следующим образом
RewriteEngine on RewriteCond $1 ^media RewriteRule ^(.*)$ codeIgnite/$1 RewriteCond $1 !^(index\.php|codeIgnite|images|robots\.txt) RewriteRule ^(.*)$ codeIgnite/index.php/$1
И это мой config.php $config['base_url'] = "http://localhost/codeIgnite/";
// или это просто http: // localhost / ?
Есть ли другие настройки конфигурации, которые мне нужно изменить? Пожалуйста помоги.
Моя домашняя страница выглядит просто отлично. Проблема с другими страницами. Независимо от того, какой URL я даю, я вижу свой домашний интерфейс.
Установка $ config ['uri_protocol'] = "ORIG_PATH_INFO", исправила проблему.
Я использовал предоставленный .htaccess из CodeIgniter и просто установил RewriteBase
в мой подкаталог, чтобы он работал правильно.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /codeIgnite/ #Removes access to the 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] #When your application folder isn't in the system folder #This snippet prevents user access to the application folder #Submitted by: Fabdrol #Rename 'application' to your applications folder name. RewriteCond %{REQUEST_URI} ^application.* 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 RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> <IfModule !mod_rewrite.c> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php </IfModule>
Вам нужно будет поместить .htaccess в папку CodeIgniter, а также вы должны изменить последнюю строку своего файла на этот RewriteRule ^ (. ) $ /codeIgniter/index.php/$1 или RewriteRule ^ (. ) $ / CodeIgnite / index.php / $ 1 Вам не нужно ничего делать в конфигурации apache, только включите расширение rewrite_module