CakePHP 2.8, перезапись URL не работает (может получить доступ только к домашнему маршруту) - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть приложение, которое я получил от другого разработчика, которого больше нет, мне удалось почти все настроить и запустить, но я могу получить доступ только к маршруту по умолчанию abcd.xyz/ все, что было добавлено, вызывает 404 Я проверил, что это конфигурация apache2У меня версия 2.4.4, и это мой .htaccess

root dir

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

app dir:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

webroot:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

у меня включен mod_rewrite, но похоже, что это не поможет.

[EDIT}

my 000-default.conf

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
     Options +FollowSymLinks -MultiViews
     AllowOverride All
     Allow from All
     Require all granted
</Directory>

my vhost.conf

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/abc-cake2/app/webroot/
<Directory /var/www/abc-cake2/app/webroot/>
    Options +FollowSymLinks -MultiViews
    AllowOverride All
    Allow from All
    Require all granted
</Directory>

1 Ответ

0 голосов
/ 12 сентября 2018

.htaccess в директории приложения по умолчанию должно выглядеть так:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

Кроме того, если у вас действительно включен mod_rewrite, проверьте также настройки AllowOverride для вашего DocumentRoot в конфигурации apache.

Дополнительное чтение: CakePHP 2.x - перезапись URL

...