ugrás a tartalomhoz

mod rewrite - godaddy - fájl kiszolgálás csak ha létezik

inf · 2012. Ápr. 14. (Szo), 17.49
Üdv.

Megint a hajamat tépem a mod rewrite miatt...

Van egy ilyenem, ami localhoston működik. Azt csinálja, hogy kiszolgálja a fájlt, ha létezik, ellenkező esetben meg az entryPoint.php-ra küld.

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/WebShop/View/public%{REQUEST_URI} -f
RewriteRule ^(.*)$ WebShop/View/public/$1 [L]

RewriteRule ^(.*)$ entryPoint.php [QSA,L]
Ezt szeretném átemelni egy godaddy-s szerverre. Erről azt kell tudni, hogy ők szeretik, ha így vannak beállítva a dolgok:

Options -Multiviews
Options +FollowSymLinks
Ami extra van, hogy a szerveren a document root egy almappájában van a .htaccess fájl, és a document root htaccess-e erre az almappára irányít.

Ezzel próbálkoztam:

RewriteEngine On

Options -Multiviews
Options +FollowSymLinks

RewriteCond %{DOCUMENT_ROOT}/almappa/WebShop/View/public%{REQUEST_URI} -f
RewriteRule ^(.*)$ WebShop/View/public/$1 [L]

RewriteRule ^(.*)$ entryPoint.php [QSA,L]
Azt már kiderítettem, hogy a RewriteCond nem stimmel. Próbálkoztam az almappa meg a document root nélkül is, de sikertelenül. Fogalmam sincs, hogyan lehetne megtákolni....

Bármi ötlet?

szerk:
A RewriteLog-hoz nem adnak hozzáférést, úgyhogy nem tudom megnézni, hogy pontosan mit csinál mindez az ő környezetükben. Próbáltam már abszolút útvonallal is a document root-os megoldás helyett, de azzal se működött...
 
1

Új fejlemény: úgy néz ki,

inf · 2012. Ápr. 14. (Szo), 19.29
Új fejlemény: úgy néz ki, hogy az almappa nevét beteszi a request uri elejére, és emiatt van a probléma.

Ez az almappába irányító kód:

Options -Multiviews
Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} ([^\.]+\.[^\.]+)$
RewriteRule ^(.*)$ %1/$1 [L,QSA]
A gond, hogy hiába nyerem ki a rendes útvonalat, és van ott a "RewriteRule ^(.*)$ WebShop/View/public/$1 [L]"-nál az L flag, egyszerűen átugrik a következő rule-ra a kérés. (Mondtam már, hogy utálom a mod rewrite-ot?)

Kiderült, hogy az a kínja, hogy a godaddy szervernél kell egy üres htaccess fájl bekapcsolt rewrite engine-el, ha almappába akarsz irányítani egy kérést. Ellenkező esetben nem fog működni. Nem értem miért, már máskor is belefutottam ebbe, de azt hittem, hogy az valami extrém eset volt... Az almappába irányító kód se működik enélkül, és a fájl letöltős kód is csak úgy megy, ha a public mappában van egy üres htaccess fájl...
3

Off

Hidvégi Gábor · 2012. Ápr. 15. (V), 09.11
Te vagy az egyik legjobb kérdező a Weblaboron, általában az első választ is te adod magadnak : ) Több ilyen kéne, így legalább nyugodtan meg tudjuk inni a jó sörünket.
4

Off

T.G · 2012. Ápr. 15. (V), 09.26
Inf3rno helyzeti előnyben van a többiekkel szemben, mert ő már témanyitáskor is tudja, hogy mi a kérdés, így több ideje van gondolkodni a válaszon. :)
7

Jaja, meg hát nekem van

inf · 2012. Ápr. 15. (V), 14.30
Jaja, meg hát nekem van godaddy account-om, és tudom nézni rajta, ti meg nem biztos, hogy egyáltalán reprodukálni tudjátok a problémát... Általában mindig ilyen hülyeségekkel szoktam előállni :D
6

Hát 3 órát szórakoztam vele

inf · 2012. Ápr. 15. (V), 14.27
Hát 3 órát szórakoztam vele mire összejött (az idegösszeomlás határán persze :D)... A godaddy-nél mod rewrite-ot írni nem egy felemelő érzés, mert teljesen máshogy működik, mint localhoston. Azt még hozzácsapnám azért, hogy IIS-es config fájlokra konvertálom a htaccess-eimet, úgyhogy csak indirekt tudom tesztelni őket... Megkértem valakit, hogy nézze meg, és nála működik úgy is, hogy nincs üres htaccess fájl az almappában, szóval ez valami godaddys szerver beállítás miatt van.
2

Fordítva?

T.G · 2012. Ápr. 15. (V), 08.35
Az úgy nem működne, hogy csak akkor irányítasz át, ha nem fájl? (ha meg van fájl, akkor az átirányítás nem kavar be)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* /index.php [QSA]


(nem vagyok nagy szaki a rewrite terén, így nem tudom, hogy ez a te környezetben miként működne)
5

Az a para ezzel, hogy az

inf · 2012. Ápr. 15. (V), 14.25
Az a para ezzel, hogy az url-ben nincs bent, hogy WebShop/View/public, csak annyi, hogy images/header.jpg mondjuk. És ebből kéne rájönnie a rendszernek, hogy a WebShop/View/public/images/header.jpg létezik e. :-)
8

Off

Pepita · 2012. Ápr. 15. (V), 15.54
Szerintem egy csokorba kéne gyűjteni mindenféle .htaccess-es fórumtémát, mert sokan és sokszor szívunk miatta, de nehéz a régebbiekre rátalálni.
Amellett ahány szerver, annyiféle nyűg a témában; én úgy látom, hogy ilyenkor többnyire a többiek csak tippelni tudnak - az általad is említett reprodukciós nehézségek miatt -, de maga a megoldás másoknak is hasznára lehet(~ne, ha megtalálná).