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?
- 2727 megtekintés
Hozzászólások
A redirect is .htaccess-ben van?
Amennyiben nem, engedelyezve van a .htaccess?
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Ezesetben tenyleg a szaballyal lehet a gond. Esetleg ha meg tudnad mutatni a htaccess filet (teljeset, redirectestul mindenestul), akkor konkretabb otletet tudnek adni talan.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
Pl.:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?id=$1 [L,QSA,NC]
- A hozzászóláshoz be kell jelentkezni
Ez sem ok. Annyit csinál mintha a stíluslapot nem töltené be. De az url-t nem változtatja meg.
- A hozzászóláshoz be kell jelentkezni
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)
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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]
- A hozzászóláshoz be kell jelentkezni
index.php, vagy amid van lemarad már megint. Simán a ?com_static=$1 nem fog menni.
- A hozzászóláshoz be kell jelentkezni
Akkor sem jó.
- A hozzászóláshoz be kell jelentkezni
Meguntam a barkóbázást.
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
És az apache default configban meg a vhost konfigban mi szerepel az "AllowOverride" direktívánál? Mertha "none", akkor biza nem fog menni.
http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride
Sajnos nincs külön rewrite engedélyezés.
- A hozzászóláshoz be kell jelentkezni
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).
- A hozzászóláshoz be kell jelentkezni
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'
- A hozzászóláshoz be kell jelentkezni
Nem nagyon értek hozzá, de a RewriteRule -os sorba nem kell \ a . elé? /index\.php/
- A hozzászóláshoz be kell jelentkezni
Köszönöm a tippet, kipróbáltam, sajnos nem lett jó. Ugyanazt a hibát produkálja, mint eddig.
Megnéztem a működő szabályaimat. Oda nem kell pont, mert az nem reguláris kifejezés.
MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'
- A hozzászóláshoz be kell jelentkezni
Ha az utolsó sort kicserélem erre:
RewriteRule ^(.*)$ index.php?u=$1 [QSA]
Akkor tökéletesen működik.
Tehát az index.php utáni / jellel van valami baja. Escapeltem \-el, de úgy se volt jó.
MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'
- A hozzászóláshoz be kell jelentkezni
Kapcsolj be logolast 9-es szinten akkor latod mit illeszt mire. RewriteLog
- A hozzászóláshoz be kell jelentkezni
Ezt hol lehet állítani?
A szerver nem az enyém, csak tárhelyet bérlek.
MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'
- A hozzászóláshoz be kell jelentkezni
Közben megtaláltam.
Beillesztettem ezt a két sort a .htaccess-be:
RewriteLog "/var/www/virtual/******/teszt/htdocs/rewrite.log"
RewriteLogLevel 9
Most már 500-as hibát dob. A rewrite.log fájl nem jött létre.
MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'
- A hozzászóláshoz be kell jelentkezni
Akkor nem tudta irni gondolom.
- A hozzászóláshoz be kell jelentkezni
Én is erre gondoltam.
Aztán létrehoztam a fájlt, adtam jogot mindenkinek írásra.
Mégis üres maradt és persze az 500-as hiba is maradt.
MODding | Asztali PC | Személyes weboldalam
'Everybody loves LEDs'
- A hozzászóláshoz be kell jelentkezni
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'
- A hozzászóláshoz be kell jelentkezni
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'
- A hozzászóláshoz be kell jelentkezni
szábszkrájb
- A hozzászóláshoz be kell jelentkezni