2014-02-14 3 views
4

Я новичок в PHP & codeigniter.i я работаю над проектом, который был запущен на сервере abcd.com и я использую код HTAccess как этотHtaccess не перенаправляя в CodeIgniter

RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

теперь мой проект был перемещен на другой сервер 192.000.000.000. я могу получить доступ к странице входа в систему, когда пользователь вошел в сессии становится установлен и перенаправляет на 192.000.000.000/myproject/user и здесь я получаю сообщение об ошибке 404

я был установлен base_url в config.php, как это

$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http"); 
$config['base_url'] .= "://".$_SERVER['HTTP_HOST']; 
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']); 

$config['index_page'] = ''; 

мой WinSCP Проект структура

old one : /home/my_org/public_html/prjFolder 
new one : /var/www/html/prjFolder 

мой файл .htaccess, как этот

system/ 
application/ 
user_guide/ 
index.php 
.htaccess 

если кто-нибудь найти решение, пожалуйста, помогите мне ..

ответ

0

Я нахожу решение, Это проблема apache rewrite_module. Я изменил свой файл httpd.conf, и теперь он работает отлично.

Изменение AllowOverride None в AllowOverride All

<Directory "/var/www/html"> 
Options Indexes FollowSymLinks 
AllowOverride All 
Order allow,deny 
Allow from all 
</Directory> 

и перезапустить демон Apache с помощью шпаклевки # service httpd restart

URL ссылки: - http://dev.antoinesolutions.com/apache-server/mod_rewrite

2

Вы упоминаете, что ваш проект был перенесен другой сервер. Вы проверяли, установлена ​​ли в вашем виртуальном хосте директива AllowOverride (при условии, что вы используете Apache в качестве веб-сервера)? Если это отключено, Apache просто проигнорирует ваш файл .htaccess. Быстрый тест - это вздор в вашем файле .htaccess, который, несомненно, приведет к ошибке. Если вы не получите ошибку сервера, ваш файл .htaccess игнорируется.

Ссылка: http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

Другой причиной может быть то, что модуль mod_rewrite не включен (опять же, при условии, что вы используете Apache). Вы не говорите, что ваш вложенный код .htaccess - это ваш полный файл .htaccess, поэтому я не знаю, проверяет ли он этот модуль. Простой тест, чтобы проверить, является ли это причиной, пытается получившийся URL в переписывании: 192.000.000.000/index.php/myproject/user

Ссылка: http://httpd.apache.org/docs/current/mod/mod_rewrite.html

Я предполагаю, что у вас нет любые ошибки в вашем файле .htaccess, так как вы, кажется, говорите, что он работал нормально перед переходом.

0

Я думаю, ваша проблема в целевом указываемоге правила переписывания

RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

Если доступ к вашему проекту через URL

192.000.000.000/myproject/user 

Правило переписывает изменит это

192.000.000.000/index.php/myproject/user 

Вам необходимо изменить ваше правило перезаписи, чтобы исключить mypro ект/пользователь из URL будет перейти к index.php или вы можете просто удалить .htaccess если это только DEV машина, причина моего мы скрыть index.php настолько, что URL будет выглядеть красиво. Наличие в среде Dev не повредит вообще.

Смежные вопросы