Маршрутизация URI не работает (многоязычная)

Как твои дела?

Вывод: я пытаюсь переместить свой веб-сайт с локального хоста на amazon-ec2, и почти любой маршрут приводит к "запрошенному URL-адресу example.com/ xxx/yyy/ не найден на этом сервере.

Контекст:

  • Использование структуры codeigniter в public_html, приложениях и системе.
  • Веб-язык в URI. Пример: localhost/public_html/es/main.
  • Для тестирования одна страница (регистрация) маршрутизируется по-разному: localhost/public_html/admin/register.
  • Страница работает с локального хоста.

Проблема: я загрузил страницу в свой EC2, и когда я пытаюсь получить доступ, почти на каждой странице отображается ошибка 404. Просто страница register работает, но только если я вызываю ее через example.com/index.php/admin/register (example.com/admin/register содержит та же ошибка 404).

Любые советы или идеи для изучения будут очень кстати!! Спасибо!!

PS: Если это поможет, я делюсь своим текущим кодом route.php.

$route['default_controller'] = "main";
$route['404_override'] = '';
$route['^(en|es)/(.+)$'] = "$2";
$route['^(en|es)$'] = $route['default_controller']; 

person Juan Carlos    schedule 27.04.2012    source источник
comment
тривиальная точка, с которой нужно начать поиск, — найти строку, которая попадает в функцию маршрутизации, и посмотреть, чем она отличается от заданного вами регулярного выражения маршрутов; Разве вам не нужно выделять начало и конец шаблона?   -  person Grigorash Vasilij    schedule 27.04.2012


Ответы (2)


Проблема заключалась в httpd.conf, где для параметра «AllowOverride» для public_html (где у меня был файл .htacces) было установлено значение «Нет».

Мне просто нужно было изменить его на Все.

Спасибо Ахраф Солтани и Григорашу за попытку, очень признателен!

person Juan Carlos    schedule 30.04.2012

Проблема: я загрузил страницу в свой EC2, и когда я пытаюсь получить доступ, почти на каждой странице отображается ошибка 404. Просто страница регистрации работает, но только если я вызываю ее через example.com/index.php/admin/register (example.com/admin/register несет ту же ошибку 404).

Это означает, что либо .htaccess отсутствует, либо неправильно установлен. По умолчанию зажигатель кода полагается на index.php для обработки всех запросов, но, поскольку он выглядит некрасиво в URL-адресе, вы должны добавить .htaccess с правильными параметрами, чтобы удалить его из URL-адреса, а затем открыть config.php из системы/приложения. /config каталог и заменить:

$config['index_page'] = “index.php” 

to

$config['index_page'] = “”
person AchrafSoltani    schedule 27.04.2012
comment
Спасибо, я изучаю это, но у меня уже была $config['index_page'] = “” и мой .htaccess был в порядке. Проблема была в httpd.conf, но в любом случае большое спасибо за помощь!! - person Juan Carlos; 30.04.2012