rewrite+htaccess nem működik

Sziasztok!

Azt szeretném megoldani, hogy szép url-em legyen.
http://aldomain.valami.hu/?id=16 ebből szeretnék valami szebbet. Persze vannak hosszabbak is csak először ezt szeretném ha működne aztán jöhetnek a komolyabbak. A rewrite engine működik mert a redirect működik, de valamiért a szabályt nem halytja végre. Próbáltam már online generátorral is és azt illesztettem e a .htaccess fájlba, de akkor sem működött. Valakinek ötlete, tapasztalata?

Hozzászólások

A redirect is .htaccess-ben van?

Amennyiben nem, engedelyezve van a .htaccess?

A redirect-et is oda tettem ésaz ment is. Kipróbálta, hogy ha hülyeséget írok a htaccess fájlba akkor mit csinál és Internal Server Error-al kiakadt. Tehát ebből gondolo, hogy működik csak a szabályt nem hajtja végre. Már sok féle képpen próbáltam a szabályt megírni, de nem reagált semmit.

Options +FollowSymLinks
RewriteEngine On

#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule /(.*)/(.*)/$ /?id=$1 [L]
#RewriteRule /(.*)/(.*)/$ /?$1=$2
#RewriteRule ^(.*)$ /?id=$1 [L]

Az első kettő szabálynál nem csinál semmit, a harmadiknál pedik Internal Server Error.

RewriteCond-al ki kell tiltani a direkt file-okat. Mert így a /akarmi.css-t és hasonlókat is /index.php?id=akarmi.css-é fordít, ezért nem tölt stíluslapot.


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php

valami hasonló (ezt épp Joomla-ból másoltam)

RewriteCond-al ki kell tiltani a direkt file-okat. Mert így a /akarmi.css-t és hasonlókat is /index.php?id=akarmi.css-é fordít, ezért nem tölt stíluslapot.
ezt ugy szoktam, hogy egy /static konyvtarba pakolok minden ilyesmit. azaz:


<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{REQUEST_URI} !/static
        RewriteCond %{REQUEST_URI} !/static/.*
        RewriteRule ^(.*)$ index.php?query=$1 [L,QSA]
</IfModule>

css-ek, kis kepecske'k, barmi-amit-ki-lehet-statikusan-is-szolgalni megy ide bele. persze lehet me'g tobbfele egyeb trukk is, de szerintem igy a legegyszerubb/hordozhato'bb.

a

Most ilyen a fájlom, de így se megy.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
RewriteRule ^(.*)$ ?com_static=$1 [L,QSA,NC]

Jó lenne tudni, hogy pontosan mi az eredmény, azon kívül, hogy "nem jó".
Itt annyi gond lehet, hogy a RewriteRule szerint "/akarmi" lesz átadva a változó értékeként.

Amúgy, ilyesmit egyszerűbb úgy megcsinálni, hogy nem rewrite-al próbálod GET paraméterekké forgatni az URL darabjait, hanem mindent dobsz az index.php-ra, és PHP-ben parse-olod a REQUEST_URI-t, ugyanazon logika szerint, ami szerint ugyanott állítod is össze.

mi szerepel az "AllowOverride" direktívánál?
+1, egy adott konyvtarra (document root) vonatkozo ``AllowOverride All'' azert nem art.

plusz erdemes kulon az apache vhost-hoz kezzel beleirni a ``RewriteEngine On''-t is, jobb a bekesseg alapon (persze, ha te csinalod a teljes oldalt, azaz nincsenek sporadikus juzerek, userdir enabled-del, sajat kis ~juzer/public_html cuccokkal... ekkor biztonsagi s egyeb megfontolasok miatt nem biztos hogy szerencses bekapcsolva hagyni a reweng-et).

Sziasztok!

Nekem is lenne egy problémám.
Adott a következő .htaccess fájl:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|public|cache)
RewriteRule ^(.*)$ /index.php/$1 [L]

A feladat:
Erről: http://teszt.domain.hu/page?id=hogyan_segithetsz
Erre kéne irányítania: http://teszt.domain.hu/index.php/page?id=hogyan_segithetsz

Ezzel szemben 404-es hibát kapok. Ha beírom a böngészőbe a cél url-t, akkor működik
az oldal.
Mi lehet a hiba?

Szerver beállításra is gyanakszok, mert egy weboldalt költöztetek és az előző tárhelyen
működik a .htaccess átirányítás.

MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'

Kipróbáltam másik tárhelyen.
Ha a RewriteLog be van kapcsolva, ott is 500-as hibát kapok.
Viszont, ha azt kiveszem, akkor működik az átirányítás.

A MultiViews-re tippelek. Ebben megerősít az Apache errorlogja, mely szerint nem létező "search" nevű fájlt vagy könyvtárat keres "search" paraméter esetén, ahelyet, hogy "index.php/search"-re fordítaná.
Ellenben a .htaccess első sora ez: Options -MultiViews
Tehát ki kéne kapcsolnia ezt a funkciót.

MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'

Van valakinek ötlete, mi lehet a megoldás?
Néztem az Apache error logját, sajnos nem derült ki belőle semmi. Nem értem, hiszen a 404-es hibák oda be szoktak kerülni, voltak is, csak az nem a szabály miatt kerültek oda.

MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'