ugrás a tartalomhoz

Htaccess gondok éles szerver alatt

speeedfire · 2010. Júl. 9. (P), 20.31
üdv!

Adott egy subdomain, ami alatt a linkeket szebbé szeretném tenni.

Így néz ki a htaccess fájl:
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z-]+)$ ?oldal=$1 [QSA,L]
RewriteRule ^([a-z-]+)-([0-9]+)$ index.php?oldal=mutat&sorszam=$2 [QSA,L]
RewriteRule kategoria/([a-z-]+)-([0-9]+)$ index.php?oldal=kategorialista&sorszam=$2 [QSA,L]
RewriteRule ^([a-z-]+)/([a-z-]+)-([0-9]+)$ index.php?oldal=$1&sorszam=$3 [QSA,L]
</IfModule>


Localhost alatt szépen teszi a dolgát, de a szerveren nem.
Az index.php-ba includolom be a php fájlokat a body-ba. A ?oldal= után álló szó azt mutatja meg mi php lap neve ami includolni kell.
A hiba itt van a serveren, mert nem includolja a megadott fájl-t hanem csak megjeleníti figyelmen kívül hagyja, hogy az index.php-t is meg kellene jelenítenie.
Tipp, ötlet?

Példa:
"ronda url", jó tartalom
"szép url", rossz tartalom
 
1

VirtualDocumentRoot

janoszen · 2010. Júl. 9. (P), 21.01
Vannak bizonyos Apache modulok mint például a VirtualDocumentRoot nevű direktíva amivel nem egészen működik együtt a RewriteRule. Próbálj meg beszúrni egy RewriteBase / parancsot a RewriteEngine On után.
2

Szia! Ezt már próbáltam, sőt

speeedfire · 2010. Júl. 10. (Szo), 00.16
Szia!
Ezt már próbáltam, sőt teljes elérési úttal is, nem teljesen értem mi a gondja vele.
Csak arra tudok gondolni, hogy aldomain. De ami a legjobban idegesít, az az hogy az index.php értelmezi melyik fájlról van szó, csak épp nem includolja. Pedig localhost alatt wampserverrel nagyon szépen működik.
3

Nézem

janoszen · 2010. Júl. 11. (V), 17.25
Volt egy kis időm, megnéztem a linkeket is. A probléma nem a .htaccessben keresendő hanem sokkal inkább a PHP kódodban. Ha pl olyan fájlnév-hivatkozásokat használsz hogy ./valami.php vagy a SCRIPT_URI-ra építesz akkor az bizonyos webszervereken szinte garantált hogy nem fog működni. Egyébként is érdemes olyan koncepció mentén építeni a rendszert hogy egyetlen egy belépő fájl legyen (mondjuk index.php) hogy ne függj annyira a konkrét webszerver implementációtól, úgyhogy lehet hogy érdemes átgondolni a koncepciót.
4

Ezt nem teljesen értettem.

speeedfire · 2010. Júl. 11. (V), 19.51
Ezt nem teljesen értettem. Minden az index.php köré épült. Az index.php-ba húzom be a get-tel átadott fájlneveket. ?oldal=fájlnév
Amúgy a hiba oka is meglett az iscp volt a bűnös

Ezt a sort kellett cserélni:
Options +FollowSymLinks
erre:
Options -Indexes Includes FollowSymLinks
Mostmár működik minden megfelelően.
5

OK

janoszen · 2010. Júl. 11. (V), 20.01
Arra gondoltam, hogy ne alakítsd át a kapott URL-t GET paraméterekké hanem közvetlenül parzolt a $_SERVER['REQUEST_URI'] változót. Ez minden platformon elérhető és nem fog belekókányolni egyetlen webszerver sem, ráadásul támogatják azok a platformok is ahol esetleg nincs lehetőséged komplex rewrite-ra.

Ellenben örülök hogy megoldódott.
6

Ennyire még nem értek hozzá,

speeedfire · 2010. Júl. 11. (V), 21.33
Ennyire még nem értek hozzá, kb 1 hónapja foglalkozok csak php-val és mysql-lel.
Olvasgattam én is, hogy a php-val vágjam szét a kért url-t és aszerint dobáljam szét, itt a weblaborban is volt egy ilyen cikk erről. A legszebb megoldás és amit a későbbiekben meg is akarok majd valósítani, az a drupal/wp féle url-ek hada.

Speeed