Rövid URL vs CodeIgniter
Sziasztok!
Rettentő tudatlan lehetek, elképzelhető, hogy csak kicsit el(be)néztem vmit, de úgy felidegesített, hogy aztán sehogy nem találom a megoldást.
CodeIgniter-el csináltam egy honlapot (localhoston), kicsit szívtam is a leírásában talált .htaccess ötlettel (1-el több / volt), de kis küzdés árán otthon jól ment. ("http://localhost/ezamappa/letoltes/xy.jpg", ahol "ezamappa" a project könyvtára)
Ám a szerveren behalt. Azt sikerült elérnem, hogy ne a böngésző dobjon hibát, hanem a szerver (oldal/könyvtár nincs olyan). Variáltam rajta sokat, bár őszintén szólva én nem vagyok egy regexp-guru, és az Apache beállítgatása is úgy megy, ha olvasok róla vmit, hogy "ebből a sorból vedd ki a #-et".
Íme a .htaccess:Az IfModule nélkül is u.az a helyzet:
Nem az index.php-nak adja a paramétereket (pl. example.com/linkek), hanem - gyanítom - mégis mappát akar(na) nyitni helyette.
A szerver: php_info(). Bár - gondolom - a httpd.conf nem stimmel.
Persze írtam a szolgáltatónak is, de érteni is szeretném, hogy mi miért nem megy. Kérlek, segítsetek.
(Ezen a tárhelyen van Drupal6 is - tanulgatni -, az műxik "?q=" nélkül.)
■ Rettentő tudatlan lehetek, elképzelhető, hogy csak kicsit el(be)néztem vmit, de úgy felidegesített, hogy aztán sehogy nem találom a megoldást.
CodeIgniter-el csináltam egy honlapot (localhoston), kicsit szívtam is a leírásában talált .htaccess ötlettel (1-el több / volt), de kis küzdés árán otthon jól ment. ("http://localhost/ezamappa/letoltes/xy.jpg", ahol "ezamappa" a project könyvtára)
Ám a szerveren behalt. Azt sikerült elérnem, hogy ne a böngésző dobjon hibát, hanem a szerver (oldal/könyvtár nincs olyan). Variáltam rajta sokat, bár őszintén szólva én nem vagyok egy regexp-guru, és az Apache beállítgatása is úgy megy, ha olvasok róla vmit, hogy "ebből a sorból vedd ki a #-et".
Íme a .htaccess:
php_value upload_max_filesize 200M
php_value post_max_size 240M
php_value max_input_time 240
php_value default_charset "utf-8"
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|images|js|css)
RewriteRule ^(.*)$index.php/$1 [L]
</IfModule>
Nem az index.php-nak adja a paramétereket (pl. example.com/linkek), hanem - gyanítom - mégis mappát akar(na) nyitni helyette.
A szerver: php_info(). Bár - gondolom - a httpd.conf nem stimmel.
Persze írtam a szolgáltatónak is, de érteni is szeretném, hogy mi miért nem megy. Kérlek, segítsetek.
(Ezen a tárhelyen van Drupal6 is - tanulgatni -, az műxik "?q=" nélkül.)
Nekem úgy tűnik, a
lehet a probléma - httpd.conf - (egy helyen olvastam: "ebből vedd ki #-et"), még futkosom a köröket szolgáltatónál.
Ha van lehetőséged, kapcsold
Sajna nincs
Vadul megpróbáltam .htaccess-ből, de 500 error.
Kezdek pipa lenni rájuk.
Írták: használjak RewriteBase / -t, jelezzek vissza (u.az), aztán ők nem jeleznek. Ápertén rákérdeztem tőlük arra, amit fentebb írtam, azóta semmi válasz. Legalább ha olvashatnám valahol ezeket a ... ini-ket meg conf-okat, akkor össze tudnám hasonlítgatni a sajáttal...
Köszi az ötletet.
Szokoz
RewriteRule ^(.*)$index.php/$1 [L]
Egyebkent az Apache ebbol a szempontbol netto szopatas, mert eleg nehez egy szolgaltatonak barmit logolni ilyen szinten anelkul, hogy szolgaltatas kieses lenne es ledosolna sajat magat.
Ha beírom a szóközt,
Szerk: csak ha utánaírom a domain-nek az index.php-t is. De ha index.php/ után adok még valamit, szintén nem találja.
# set the default
Köszi, de u.az
Érdekes, hogy ha az index.php elé beírom a szóközt, akkor helyből a böngésző ír üzit, nem a szerver. Ha a szóközt kihagyom, akkor a szerver "nem találja". Már a törpöm ki van velük.
Lehet, hogy tudom
Kicsit higgadtabban localhoston sikerült hasonló hibát kreálni ennek a sornak a #-val. Nagy Gusztáv Drupal6 könyvében olvastam erről.
Viszont ez a ... DataGlobe igencsak tojik a fejemre (ez itt az antireklám helye). Pedig nemrég még valamelyik fórumban pozitívan nyilatkoztam róluk. Szerintetek küldjek nekik - mondjuk 5 percenként - emlékeztető mail-eket az ő címükről? Ma 12.11 óta várom (és telefonálgatom), hogy válaszoljanak már a legutóbbi mailemre.
Próbáltad már ugyanazt a
Nem, de közel azonos
DataGlobe: Apache 2.2.20, PHP 5.3.10, MySql 5.5.15.
Miben tud hibásan működni? Szerintem csak az az említett sor a ludas, bár a szóköz-dolog is gyanús egy kicsit. Kéne egy jó Apache-doksi, meg sok türelem...
A PHP 5.2 és 5.3 között kis
Közben megkerestem a saját .htaccess-emet, íme:
RewriteCond %{REQUEST_URI} !(i|css|js)/.*$
RewriteCond %{REQUEST_URI} !(favicon.ico|robots.txt|sitemap.xml.gz|index.php)$
RewriteRule ^(.*)$ index.php?url=$1&%{QUERY_STRING}
Különbségek
A te .htaccess - eddel egy gondom van (és másikakkal is amit néztem):
A CodeIgniter tudtommal rendesen a querystring-ből "találja ki" a paramétereket, tehát nem jó neki a "index.php?url=$1" forma. Biztos meg lehetne oldani pusztán .htaccess-el is, de a CI megoldaná helyettem, ha megkapná a k*** querystring-et. De meg se kapja.
Emiatt nem műxik az egész oldal 2 napja. És persze ez a sajátom. Fent van a régi, de az gagyi, ezzel dolgoztam egy csomót, otthon tök jó, ezeknél meg nem. És maximum 1 e-mail-t válaszolnak naponta, de az is semmitmondó.
A CI saját doksijában ez van:
Tényleg jó lenne ilyenkor egy rewritelog, de sajnos tőlük nem remélhetek.
Nézd meg a $_SERVER tömb
Épp az, hogy semmilyet
* Ezt nem egészen pontosan írtam le. Összesen max 3(+) paramétert vár: Osztály, Függvény, Függvénynek Adandó Paraméter(ek) sorrendben. De ezen lehet variálni a belső routs-al.
Egyébként nekem egyre inkább
Nem SEO szempont, nem felesleges
Elég sok átírkálást igényelne (összes link, stb.), hogy megcsináljam "csúnya URL-esre".
A "szép URL" ebben az esetben inkább "reklámszempont", mint SEO. A Júzerek is szeretik, pláne az esetleges megrendelők (fentebb írtam: ez az én honlapom).
Szóval annak érdekében, hogy egyáltalán működjön ez a sz.., nem felesleges.
Elnézést, hogy Up-oltam,
Vagy mit és hogyan próbáljak (teszttel) a szerveren? Az (is) a gond, hogy sík ideg lettem ettől a DataGlobe-féle lesz...tól, ilyenkor semmi épkézláb ötletem sincs.
Megoldás!!!
2. Több helyen írtam QUERY_STRING-et - helytelenül, mert a fenti .htaccess alapján (ha pótoljuk a space-t) PATH_INFO vagy vmi más (pl. REQUEST_URI) keletkezik, de QUERY_STRING nem.
3. Valamiért (nem tudom az okát) a szerveren nem műxik az
index.php/$1
jellegű paraméter (v. könyvtár) átadás.A megoldás:
RewriteRule ^(.*)$index.php/$1 [L]
sor helyett:RewriteRule ^(.*)$ index.php?$1 [L]
.Nem mertem ?-et tenni addig (nem is gondoltam rá), míg Hídvégi Gábor ötlete (köszi!) alapján ki nem írattam localhoston a QUERY_STRING-et. Meg is lepődtem, mert nem volt. Ez arra indított, hogy feltúrjam a CI URI-kezelő forráskódját (kemény volt), ott láttam, hogy - ha jól értettem - ha AUTO-ra van állítva az URI (URL) kezelés, akkor többféle mutatvánnyal próbál magának paramétereket "szerezni", szerepel köztük a QUERY_STRING, sőt, a $_GET tömb is. A doksijában nincs sok infó erről, csak az, hogy mindenképp
http://example.hu/(index.php/)class/method/otherparam
formájú URL-eket használ. A két infót összerakva rápróbáltam, hogy mi van, ha ?-el adom át a .htaccess-ben.
Bejött.
Mindenkinek nagyon köszönöm az ötleteket, bár senki sem találta el, mégis sokat segítettetek a megoldásban.
(Csak a k... DataGlobe szarik rá.)
Csak nézd meg az általam
Egyébként ?page=$1-re is nyugodtan átcsaphattad volna, mert $_SERVER['REQUEST_URI']-ba úgy is a szép url-ed kerül :)
Próbáltam is