Încerc să implementez o aplicație web Symfony pe un server care oferă doar acces ftp, fără posibilități ssh, și am putut pune fișiere doar în două foldere rădăcină: /data și /html. Încerc să pun fișierele Symfony în folderul html, dar htaccess-ul creat de apache webpack nu funcționează, funcționează doar pe local și primesc o eroare 500 pe ecran. Nici jurnalul nu ajută, doar mesaje generice 404.
Ceva gânduri? Încerc să urmez instrucțiunile din alte postări ca aceasta de la @runawaycoin, dar fără succes: https://medium.com/@runawaycoin/deploying-symfony-4-application-to-shared-hosting-with-just-ftp-access-e65d2c5e0e3d
Am pus .htaccess pe care pachetul Symfony apache îl generează local în folderul /html ar trebui să fie singura configurație.
Acesta este codul de la .htaccess:
# Utilizați controlerul frontal ca fișier index. Servește ca soluție de rezervă atunci când
# orice altă rescriere/redirecționare eșuează (de exemplu, într-un mediu alias fără
# mod_rewrite). În plus, acest lucru reduce procesul de potrivire pentru
# pagina de pornire (calea „/”) deoarece altfel Apache va aplica regulile de rescriere
# la fiecare fișier DirectoryIndex configurat (de exemplu, index.php, index.html, index.pl).
DirectoryIndex index.php
`
# În mod implicit, Apache nu evaluează legăturile simbolice dacă nu ați activat acest lucru
# caracteristică în configurația serverului dvs. Anulați comentariile următoarei rânduri dacă dvs
# instalați elementele ca legături simbolice sau dacă întâmpinați probleme legate de legăturile simbolice
# când compilați elemente LESS/Sass/CoffeScript.
# Opțiuni +FollowSymlinks
# Dezactivarea MultiViews previne negocierea nedorită, de ex. „/index” nu ar trebui să se rezolve
# la controlerul frontal „/index.php”, dar să fie rescris în „/index.php/index”.
<IfModule mod_negotiation.c>
Opțiuni -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine Pornit
# Determinați automat RewriteBase și setați-l ca variabilă de mediu.
# Dacă utilizați aliasuri Apache pentru a face găzduire virtuală în masă sau ați instalat
# proiect într-un subdirector, calea de bază va fi antepusă pentru a permite corect
# rezoluția fișierului index.php și redirecționarea către URI-ul corect. O sa
# lucrați și în medii fără prefix de cale, oferind un sistem sigur, de dimensiune unică
# se potrivește tuturor soluțiilor. Dar, deoarece nu aveți nevoie de el în acest caz, puteți comenta
# următoarele 2 linii pentru a elimina supraîncărcarea.
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
# Setează antetul HTTP_AUTHORIZATION eliminat de Apache
RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
# Redirecționați către URI fără controler frontal pentru a preveni conținutul duplicat
# (cu și fără `/index.php`). Faceți această redirecționare doar pe inițială
# rescrie de către Apache și nu în ciclurile ulterioare. Altfel am primi un
# buclă de redirecționare fără sfârșit (cerere -> rescrie în controlerul frontal ->
# redirecționare -> cerere -> ...).
# Deci, în cazul în care primiți o eroare „prea multe redirecționări” sau veți fi întotdeauna redirecționat
# la pagina de pornire deoarece Apache-ul dvs. nu expune REDIRECT_STATUS
# variabilă de mediu, aveți 2 opțiuni:
# - dezactivați această funcție comentând următoarele 2 rânduri sau
# - utilizați Apache >= 2.3.9 și înlocuiți toate steaguri L cu steaguri END și eliminați
# după RewriteCond (cea mai bună soluție)
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
# Dacă numele fișierului solicitat există, pur și simplu serviți-l.
# Vrem să lăsăm Apache să servească doar fișiere și nu directoare.
# Rescrie toate celelalte interogări la controlerul frontal.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# Când mod_rewrite nu este disponibil, indicăm o redirecționare temporară a
# pagina de pornire către controlerul frontal în mod explicit, astfel încât site-ul web
# iar linkurile generate pot fi încă folosite.
RedirectMatch 307 ^/$ /index.php/
# RedirectTemp nu poate fi folosit în schimb
</IfModule>
</IfModule>
Acum încerc să pun un simplu index.php cu un „bună ziua” la nu funcționează :(
Cei de la asistență îmi spun doar că avem doar folderul /html și folderul /data pentru a funcționa.
Mulțumiri!