Cześć, kilka dni temu zacząłem się bawić w Symfony4 (Symfony Flex?) z którym wcześniej nie miałem za bardzo nic wspólnego. Zrobiłem sobie API do bazy danych i chciałbym sobie to wystawić na VPSie na którym śmiga Ubuntu z kilkoma Wordpressami.
Testowo mam nowy, pusty projekt i działam na Debianie z apachem2 i php7.2. Podążając za artykułem z dokumentacji https://symfony.com/doc/current/setup/web_server_configuration.html , dochodzę do momentu gdzie tworzę VirtualHosta, mogę wejść na główną stronę (/), ale jak już chce wejść na ADRES_DO_STRONY/test to nie działa. Zauważyłem że jak wpiszę ADRES_DO_STRONY/index.php/test to już łapie. Według mądrych ludzi ze Stacka mod rewrite jest wyłączony ale już go miałem włączonego i restartowałem serwer.
Robiłem to na 2 sposoby z dokumentacji:
1. Wersja zoptymalizowana gdzie RewriteEngine jest włączany w konfiguracji VirtualHosta (bez .htaccess)
2. Wersja zminimalizowana, gdzie za włączenie RewriteEngine odpowiada .htaccess.
Konfiguracja VirtualHosta z wersji 1:
<VirtualHost *:80>
ServerName symtest.pl
ServerAlias www.symtest.pl
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/symtest/public
<Directory /var/www/html/symtest/public>
DirectoryIndex index.php
AllowOverride All
Require all granted
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Plik .htaccess który był w /public (z wersji nr 2) - to jest to co zostało wygenerowane przy composer require symfony/apache-pack
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
</IfModule>
</IfModule>
Może ktoś coś się orientuje? Na szybko na Ubuntu jak postawiłem to wyglądało to identycznie.