mod_rewrite nem működik
Az a helyzet, hogy teljesen hülye vagyok a témához, de gondoltam biztos nem lesz olyan bonyolult átfésülni kicsit a linkeimet pofásabbra, elvégre léteznek ilyen mod_rewrite generátor oldalak is.
Ez működik:
Viszont sehogy se tudom a dinamikus url-eket átalakitani, mert vagy semmit nem csinál vagy Internal Server Error-t ír ki hibaüzenetként.
De mondjuk nem is ezt akarnám, hanem a www.oldal.co.uk/valami.php?p=semmi.nemsemmi helyett www.oldal.co.uk/semmi/nemsemmi
■ Ez működik:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldal\.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.oldal.co.uk/$1 [R=301,L] //eléteszi a www. előtagot
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.oldal.co.uk/$1 [R=301,L] //levágja az index.php-t
RewriteCond %{HTTP_HOST} ^oldal\.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.oldal.co.uk/$1 [R=301,L] //eléteszi a www. előtagot
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.oldal.co.uk/$1 [R=301,L] //levágja az index.php-t
Viszont sehogy se tudom a dinamikus url-eket átalakitani, mert vagy semmit nem csinál vagy Internal Server Error-t ír ki hibaüzenetként.
RewriteRule ^/([^/]*)\.html$ /valami.php?p=$1 [L]
De mondjuk nem is ezt akarnám, hanem a www.oldal.co.uk/valami.php?p=semmi.nemsemmi helyett www.oldal.co.uk/semmi/nemsemmi
Napló
pontosabban
Ezen kívül jó lenne egy Apache verzió, csak a .htaccess tartalmából gondolom, hogy egyáltalán Apache szerverről van szó.
A "gugli barát" url-t megoldani szerintem PHP - s routing - okosság is kell, úgyhogy kellene egy fw verzió is, ha nincs (fw), akkor az index.php, és hogy mi az egyéb működési logika.
redirection
Az utolsó hozzászolásban leírtam, hogy nagyjából már működik a dolog, létre tudom hozni az url-t csak nem tudom átírányítani, mert végtelen redirection ciklusba keveredik. Ez csak a dinamikus url-nél van, sima php file-nál működik a dolog.
Próbáltam headerrel is átirányítani, de ott is ugyanazt akarja megnyitogatni újra és újra.
logika
Nincs nagyjából műxik. Ez boolean, igen vagy nem. Tehát még nem.
Menj végig az összes kérdésemen, válaszolj rá, + amennyire csak tudod, specifikáld pontosan a feladatot, példa url ekkel, és leírva, hogy ezekkel mit szeretnél működésben elérni.
Úgy tűnik, hogy nagyon kevered a rewrite és redirect fogalmakat. Ezért fontos, hogy megválaszold a kérdéseket, akkor fogok tudni segíteni.
pistike
2. Fogalmam sincs mi az az fw verzió, a google szerint valami firmware.
Én azt hittem először, hogy csak simán átírom az url-eket és működni fognak, de nem. Aztán észrevettem, hogyha átírom attól még át kell irányítani őket, mert magától nem változik meg a link, csak lesz belőle még egy oldal.
De ha megtudom, hol lehet a logot követni az lehet nagy segítség lesz.
Ki a Pistike? :)
2. Framework. Ezek szerint nem használtál semmilyet, akkor szerintem tudnád. Így az index.php kellene, illetve jelenleg mi a vezérlés (mi és hol dönti el, és mi alapján, hogy include ('valami.php'); ). Ha csak magukban futó szkriptek, akkor elég nehéz lesz. Reggel ha lesz kicsi idő, rá nézek.
Szerk.
Ha sikerül, a példádon megmutatom, mi a rewrite, és hogy nem kell redirect.
Link meg pláne, de szerintem itt url re gondolsz.
Szerk 2
Valahol tedd elérhető a jelenlegi cuccot pl zip ben. Itt szerintem túl sok kód lenne.
Én vagyok a Pistike
Kösz a segítséget előre is!
Nekem a Pistike az, aki
Én úgy látom, te akarsz tanulni, és jól akarod csinálni, és - hála Istennek - nem vagy néma Levente sem. :)
Sajnos ma már nem maradt időm átnézni a kódod, de letöltöttem...
Így látatlanba annyit, hogy az index.php-t kéne úgy "faragni", hogy csak config és routing feladata legyen, aztán majd behúzkodja azt a "php file-ok", amiket kell.
.htaccess meg annyit csinál majd, hogy majdnem minden query-t (pl a css, js, kép- kéréseket nem) szépen odaad az index.php-nek.
Pe-pi-NA?
Ja nem láttam, hogy lent
Talán itt találsz némi
update
Így sikerült megoldani a dolgot, nem tudom, hogy helyes-e:
RewriteCond %{THE_REQUEST} ^.*/quote.php
RewriteRule ^(.*)quote.php$ http://www.gentlevanremovals.co.uk/get-a-quote [R=301,L] //átirányítják az url-t
Viszont ugyanez nem működik dinamikus url-nél, csak külön-külön.
RewriteRule ^removals\.php$ /removals/oxford? [L,R=301] //ez átirányítja ugyanúgy
A kettő viszont együtt nem működik.
Eddig
Először is rendet kéne tenni (docroot-ból kivenni az összes js-t, képet, stb külön könyvtárba, törölni az olyanokat, mint phpinfo.php /direkt megmutatod mindenkinek, hogy mi a szerver config???/, stb).
Az index.php szerepe legyen pusztán
- az alap config
- db kapcsolat (külön class-al v. script-el)
- routing (eldönti url alapján, hogy mi a következő "php fájl", beállít átadandó paramétereket)
- session kezelés.
Ebből a routingra fogok csinálni egy egyszerű példát, amint lesz egy kis időm. De ennek feltétele lesz, hogy rendszerezve vannak a különféle fájlok, nem úgy össze-vissza, mint most.
+ javaslat: gyomláld ki az összes functions.php-t és script.js-t...
sorry
Kis türelmet kérek.
Kód
Docroot: "./".
./.htaccess :
Tegyünk is bele valamit:
./public/test.css:
Csináljunk egy pici logikát is, ha már a 13 - 18. sorban meg tudunk találni egy script-et a paraméterek alapján,
./application/test.php :
http://localhost/test/valami/12/miafene/walaki
Itt ugye a localhost a domain, utána szép sorban a paraméterek.
Kimenet: