| Autor | Zpráva | ||
|---|---|---|---|
| ondra256 Profil |
#1 · Zasláno: 23. 3. 2022, 09:10:30
Zdarvím,
Mám projekt Symfony, React na Windowsu. Používám Wamp64 a projekt routuju pomocí VirtualHostu. Virtual host <VirtualHost *:80>
ServerName my-project.test
DocumentRoot "c:/wamp64/www/my-project/fe/build"
# api dotazy směřuju do symfonz složky kde je index.php
Alias /api c:/wamp64/www/my-project/public
# Tady směřuju provoz do složky kde je frontend
<Directory "c:/wamp64/www/my-project/fe/build/">
Options Indexes FollowSymLinks
AllowOverride All
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Require all granted
</Directory>
</VirtualHost>V symfony složce public/ mám vytvořený htaccess soubor s timto: RewriteEngine On
RewriteBase /api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]Konfigurace takhle funguje, ale problém je, že se do symfony propíše adresa bez /api tím pádem symfony nenajde žádnou routu. Zkoušel jsem variantu RewriteBase / ale to bohužel vyhodí bílou Apache stránku Not Found. Nevíte někde v čem by mohl být yakopaný pes? Předem děkuju |
||
| Keeehi Profil |
V konfiguraci apache nejsem velký odborník ale říkám si, že tohle by mohlo fungovat. Když ti tam api chybí, tak ho tam prostě natvrdo dopsat.
RewriteRule ^(.*)$ index.php?/api/$1 [L,QSA] |
||
| ondra256 Profil |
#3 · Zasláno: 23. 3. 2022, 10:55:04
Keeehi:
Tohle jsem zkoušel, ale zacyklilo se mně to na redirectech. Pořád to přidávalo /api Ale nápad dobrý :-) |
||
| Kajman Profil |
#4 · Zasláno: 23. 3. 2022, 11:53:22
Když se do api nedá .htaccess a před výchozí pravidlo celého webu se přidá ještě jedno, ta se něco změní?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(api/.*)$ api/index.php?/$1 [L,QSA,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L] |
||
| ondra256 Profil |
#5 · Zasláno: 23. 3. 2022, 15:21:43
Kajman:
To už vypadá lépe. Api (s malou úpravou) funguje. Ale teď nefunguje Frontend který je ve složce fe/build/index.html RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(api/.*)$ public/index.php?/$1 [L,QSA,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ fe/build/index.html [QSA,L] # TAKHLE SE TO NASMĚŘUJE DO SPRÁVNÉ SLOŽKY, ALE POKUD SE STAHUJÍ ASSETYTakže teďkom mám v konzoli chybu: static/js/main.97d34693.js NOT FOUND. Zřejmě se snaží soubor najít v root složce projektu a né ve složce fe/build/static/js/ Potřeboval bych nějak nastavit aby to soubory stahovalo z té složky fe/build. Snažím se o to ale nedaří se :-( |
||
| Kajman Profil |
Takže jste změnil DocumentRoot? Pak by asi šlo ještě přidat pravidlo, že i existující soubory hledá ve složce fe/build
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?(api/.*)$ public/index.php?/$1 [L,QSA]
#test, ze jeste nedoslo k podstrceni, aby se to necyklilo
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^(.*)$ fe/build/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ fe/build/index.html [L]Ale jestli jsou statické soubory i v adresáři public a mají být dostupné cestou začínající na api, tak to bude potřeba asi ošetřit i to. |
||
|
Časová prodleva: 4 roky
|
|||
0