Проблема с редиректом Phalcon

Artem_Paris

Новичок
Всем добрый день.
Столкнулся с проблемой, не могу понять, где косяк.
Все перенаправления вида /index/test/ перенаправляются на index.php/index/test
Помогите разобраться, пожалуйста.

www/html/.htaccess

Код:
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</IfModule>
www/html/public/.htaccess
Код:
<IfModule mod_rewrite.c>
    RewriteEngine On
   RewriteCond %{THE_REQUEST} ^\S+\s+/public(\S+)
    RewriteRule ^ %1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
route.php
PHP:
$router->add('/:controller/:action/:params', array(
    'controller' => 1,
    'action' => 2,
    'params' => 3
));
Применение
PHP:
$this->response->redirect('/index/test/');
$this->view->disable();
Результат:
Посмотреть вложение 1620035698734.png
 

Artem_Paris

Новичок
А в чём заключается вопрос?
Например, при попытке из кода сделать редирект на http://host/user/test/, перенаправление происходит на http://host/index.php/user/test/

Но если обращаюсь по ссылке http://host/auth/login/ , то все срабатывает, как надо. то есть AuthController и метод loginAction.

Из кода делаю следующим образом:
$this->response->redirect('/index/test/');
 

AmdY

Пью пиво
Команда форума
Так у вас с конфигом phalcone что-то не то, раз он редиректит на явно index.php
поищите там какой нибудь baseUri
 

AmdY

Пью пиво
Команда форума
У него не в сервере проблема, а в криво настроенном конфиге фреймворка. СЕОшники всё равно потребуют убрать index.php из урлов.
Да и в целом нелепо использовать высокопроизводительный фреймворк и использовть апач с реврайтами, а не nginx
 

Artem_Paris

Новичок
Так у вас с конфигом phalcone что-то не то, раз он редиректит на явно index.php
поищите там какой нибудь baseUri
В файле конфига есть настройка:
PHP:
'baseUri'        => preg_replace('/public([\/\\\\])index.php$/', '', $_SERVER["PHP_SELF"]),
я заменил на
PHP:
'baseUri'        => '/';
Вроде все заработало. пока багов в этой связи не обнаружил. Всем спасибо
 
  • Like
Реакции: AmdY

Squats

Новичок
Рекомендую делать единую точку входа.
Каждый адрес должен быть уникальным.
Кстати, поисковики воспринимают одинарные адреса лучше чем с вложениями.
 

AmdY

Пью пиво
Команда форума
В файле конфига есть настройка:
PHP:
'baseUri'        => preg_replace('/public([\/\\\\])index.php$/', '', $_SERVER["PHP_SELF"]),
я заменил на
PHP:
'baseUri'        => '/';
Вроде все заработало. пока багов в этой связи не обнаружил. Всем спасибо
вы бы ещё от апача избавились, раз уж быстрый фреймворк используете.
 
Сверху