login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Mod Rewrite

Offline BigBug - 12/10/2006 19:03
Avatar van BigBugPHP expert Hoi allemaal!

Ik ben een game-site aan het maken voor een klant. (Dus met flash game's ect). Maar ik wil hier mod rewrite op toepassen. Kan ik na het maken van het hele script dit nog enevoudig toe passen? Dus zonder heel veel werk?

Jeroen

26 antwoorden

Gesponsorde links
Offline Frisbee - 12/10/2006 19:22
Avatar van Frisbee HTML beginner Ik zou dit zo snel mogelijk doen. Anders moet je later weer al je links gaan aanpassen.

Het kan ook achteraf maar dat kost je wel veel werk wat eigenlijk dus niet nodig is.
Offline BigBug - 14/10/2006 19:26
Avatar van BigBug PHP expert Oké, vervolgvraag.

Ik heb de nodige dingen af en kan nu in feite echt aan het systeem beginnen.

Het idee is: http://www.url.nl/gamenaam.html

gamenaam = een ingevulde waarde in een script

In feite als die mod rewrite niet nodig was dan werd het: index.php?pagina=games&id=5

Wat dus in die mod rewrite moet is het game id en de game naam.

Ik ben totally noob met MOD Rewrite dus plz help! Hoe moet ik dat aanpakken??
Offline Mmore - 14/10/2006 19:31
Avatar van Mmore MySQL interesse In de .htacces:
  1. RewriteEngine on
  2. RewriteRule ^([^/\.]+)/([^/\.]+) index.php?pagina=$1&id=$2 [L,QSA]

Hoe kan je dan de pagina bezoeken?
  1. http://www.url.nl/paginanaam/id/maaktnietuitwat.html


Dit zou moeten werken.. Ik weet het niet helemaal zeker; ben zelf ook niet zown ster met modrewrite.
Offline BigBug - 14/10/2006 19:37
Avatar van BigBug PHP expert Ja oké kwam net ook al op zoiets.
Het is me eigenlijk nog vrijwel niet duidelijk.

dat 'maaktnietuitwat.html' moet zoiezo niet kunnen. Het gedeelte voor de .html moet een vaste naam hebben. Hoe doe ik dat dan? En ik moet de lijst met links ophalen uit de database. De link zie je dan in kolommen zoals je op elke gamesite ziet. Maar in die link moet ook al .html staan.

En wat doet Mod rewrite precies? Is het in feite alleen een stickertje over de url? Die de huidige URL verbergt terwijl het nog steeds functioneert of wat? En als dat zo is waarom zou het dan zo'n werk zijn om de links aan te passen? (volgens Frisbee)
Offline Dark_Paul - 14/10/2006 20:02
Avatar van Dark_Paul PHP ver gevorderde De MOD rewrite 'vertaalt' je URL.
Je kan bijv. de mod zetten, dat de URL
http://jouwwebsite.nl/pagina
door de MOD rewrite wordt vertaalt naar
http://jouwwebsite.nl/index?pagina=pagina
Als je dat doet, verwijzen al je links naar /pagina, maar de rewrite zet de URL voor bijv. je PHP scripts om naar het ?pagina=.. URL.
Enige problemen (die ik zelf heb ondervonden), als je een rewrite maakt voor /pagina/, dan denkt FireFox in ieder geval (IE7 heb ik niet getest) met includen dat je niet meer in de hoofddir zit, maar in de subdir /pagina. Daarom ben ik weer afgestapt van mijn MOD Rewrite. Ik zoek zelf ook nog voor een oplossing.
Ik hoop dat dit een beetje duidelijk is.
Offline BigBug - 14/10/2006 20:09 (laatste wijziging 15/10/2006 13:13)
Avatar van BigBug PHP expert Aha, begin het te begrijpen. Stel ik heb een MySQL table:
- id
- naam
- gamelink
- weergave naam

Ik maak een MOD Rewrite

En haal de weergavenaam op. Deze echo ik dan als link: weergavenaam.html

Als ik dan daarop klik dan zorgt de MOD ervoor dat het wordt omgezet naar een phplink? Dus dat ik bijvoorbeeld achter de schermen: index.php?game=weergavenaam draai?

Die verborgen link kan ik dan bijvoorbeeld de gegevens van weergavenaam verder ophalen (WHERE weergavenaam='spel')

Klopt mijn theorie of? 
Offline Cosca - 15/10/2006 13:25
Avatar van Cosca HTML beginner je idee klopt,.. je moet er alleen wel rekening mee houden dat je url er miss anders uitziet dan zoals je die in je database hebt staan,.. want het is wel aan te raden om niet alles in je link toe te staan,.. zoals punten en slashes, omdat anders je regex misschien niet werkt (weet ik uit ervaring )
Offline Mmore - 15/10/2006 19:15
Avatar van Mmore MySQL interesse De website www.waarmaarraar.nl maakt gebruik van modrewrite, en wikipedia ook als ik het goed begrepen heb. Zoals je kan zien zijn dat urls die helemaal niet mogelijk zijn.

Als je gebruikt maakt van Mod Rewrite stijgt je google index enorm (op waarmaarraar.nl blijf je bijvoorbeeld altijd op index.php maar door modrewrite pakt google toch elk artikeltje apart).
Offline Gerard - 15/10/2006 21:00
Avatar van Gerard Ouwe rakker Iets wat je in de url zet hoef je niet altijd iets mee te doen. In een systeem voor nieuwsberichten wat ik geïmplementeerd heb op een mod_rewrite enabled website doe ik als volgt:
www.mijndomein.nl/news/1/this-is-the-headline.html

Ik vraag dus de pagina news op en het newsid = 1. De headline gooi ik erin om het indexeren wat interessanter te maken.
Offline BigBug - 11/11/2006 14:40 (laatste wijziging 11/11/2006 18:02)
Avatar van BigBug PHP expert Om nog even verder te gaan op dit topic. Ik heb een aantal verschillende rewrite's nodig... Maar hoe moet dat? 
Offline Richard - 11/11/2006 19:17
Avatar van Richard Crew algemeen Eerst mod_rewrite aanzetten:

  1. RewriteEngine on


Nu rules opgeven:

  1. RewriteRule ^game/([a-zA-Z0-9_]+).* index.php?game=$1


Als simpel voorbeeld....
Offline Dark_Paul - 11/11/2006 20:25
Avatar van Dark_Paul PHP ver gevorderde Zet je rules van gemakkelijk naar moeilijk, en zet er een [L] achter. Dat betekent dat het de laatste is, anders gaat wordt misschien je rule (als dit aan de bovenste eisen voldoet) nog extra omgeschreven door de rules verder nar beneden.
Offline Mmore - 12/11/2006 01:42
Avatar van Mmore MySQL interesse Ik gebruik aan het eind van elke regel altijd " [L,QSA]" , zo is het me geleerd. Vraag me niet waarom 
Offline Richard - 12/11/2006 08:58
Avatar van Richard Crew algemeen @Dark_Paul: als zoiets gebeurt, moet je de volgorde van je rules gewoon omdraaien, ik heb de L flag nog nooit nodig gehad.

@Mmore: QSA betekent dat de query_string (alles vanaf ?) niet meedoet in de Rule, en dat die uiteindelijk gewoon achter de nieuwe url wordt geplakt
Offline BigBug - 12/11/2006 12:48
Avatar van BigBug PHP expert   Wat een zooi ist eigenlijk

Ik knikker een rewrite rule neer en ineens kan mn pagina geen images meer ophalen....

Wat ik nu wil is dus een werkend ?pagina=blaat script die ook nog eens compatibel is met een graag bijbehorende rewriterule.. Het zal wel aan mijn zelfgeschreven include script liggen.. Maar ben op het moment zo onzettend pissed op die rommel dat ik me er niet eens op kan concentreren..

Alvast bedankt
Offline ThAlmighty - 12/11/2006 16:49
Avatar van ThAlmighty HTML beginner dan moet je in je image dir volgens mij RewriteEngine weer uitzetten 
Offline BigBug - 12/11/2006 18:29
Avatar van BigBug PHP expert En hoe?
Offline Mmore - 12/11/2006 18:47
Avatar van Mmore MySQL interesse Je moet precies verwijzen naar de locatie van het plaatje, bijvoorbeeld
"<img src="http://jedomeinnaam.nl/plaatjes/plaatje1.jpg">" of je moet een "image" map in home dir. zetten en dan kan je daar naar verwijzen door "<img src="/image/plaatje1.jpg">"

Door mod rewrite gaat hij namelijk zoeken in directories die niet eens bestaan. Je kan als je een website bouwt het best direct beginnen met mod rewrite anders moet je later heel veel veranderen  
Offline Ultimatum - 12/11/2006 19:05
Avatar van Ultimatum PHP expert Omdat ik het onnodig vind om hier een nieuwe topic over aan te maken stel ik mijn vraag hier wel 

Ik wil dus ook dat met Mod Rewrite en heb in een htaccess bestand dit gezet:

  1. RewriteEngine on
  2. RewriteRule ^index/([a-zA-Z0-9_]+).* index.php?p=$1


dus dat van JeXuS alleen dan aangepast, maar ik krijg deze fout:

Citaat:
Server fout!

De server kreeg een interne fout en kon uw vraag niet beantwoorden. De server is overbelast of er was een fout in een CGI script.

Indien u van oordeel bent dat deze server in fout is, gelieve de webmaster te contacteren.
Error 500
10.0.0.11
11/12/06 19:03:53
Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8d mod_autoindex_color PHP/5.1.6


ik heb het bestand gewoon in de root van mijn localhost staan, wat doe ik verkeerd 
Offline ThAlmighty - 12/11/2006 19:26
Avatar van ThAlmighty HTML beginner @Ultimatum
je moet in je httpf.conf bestand bij apache, de # voor exstention mod_rewrite weghalen. Hij geef die error dus omdat je mod_rewrite niet aan hebt staan.

@BigBug
je plaatst een nieuw .htaccess bestand de map waar je plaatjes instaan met alleen
  1. RewriteEngine Off

Vraagje, gebruik je soms het Zend framework?
Offline Ultimatum - 12/11/2006 19:35 (laatste wijziging 12/11/2006 19:37)
Avatar van Ultimatum PHP expert Bedankt ThaAlmighty dat ik daar niet aan dacht  

maar nu heb ik nog een vraag..

index/home werkt dus (index.php?p=home) maar als ik dat doe pakt hij dus niet de layout die in index.php staat, want de achtergrond is niet goed, de navigatie is weg, de opmaak is pleite etc...

edit: het bovenstaande probleem is op te lossen door:
Options FollowSymlinks

toe te voegen 
Offline BigBug - 12/11/2006 21:28
Avatar van BigBug PHP expert Nee ik gebruik geen Zend network...
Offline ThAlmighty - 12/11/2006 21:39
Avatar van ThAlmighty HTML beginner jullie hebben allebei volgens mij hetzelfde probleem. Omdat in jullie je images dir(s) ook nog die RewriteEngine geldt, worden de plaatjes ook "gerewrite" daarom is het essentieel dat je de RewriteEngine uitzet in je images dir's, dat is sowiezo een fout.

Kunnen jullie dus proberen wat ik in mijn vorige post beschrijf en mij vertellen of het dan wel lukt?
Offline Ultimatum - 12/11/2006 21:53 (laatste wijziging 12/11/2006 22:33)
Avatar van Ultimatum PHP expert Ik heb die RewriteEngine uitgezet in de map images maar nu werkt het maar half + hij zegt de functies meerdere keren geinclude worden (zie mijn andere post) maar ik zal nog wel even verder kloten 

Edit: Ik heb nu weet ik niet waar allemaal .htaccess + RewriteEngine off neergezet en nu werkt mijn layout naar behoren. Bedankt 

Mocht er iemand tegen dezelfde fout als mij aanlopen (zegt dat functies al geinclude zijn), smijt er [L,QSA] achter en hij doet het 
Offline BigBug - 12/11/2006 21:55 (laatste wijziging 28/11/2006 17:24)
Avatar van BigBug PHP expert Edit:

De site is af in z'n geheel. Alleen de modrewrite moet nog toegepast worden. Ik heb alle URLs al exact gemaakt.

Ik heb nu 2 .htaccess files. 1 in de map image's met daarin hetvolgende:
  1. RewriteEngine off
Verder heb ik nog een .htaccess in de root staan van de site. Deze is nog leeg. Kan iemand mij verder helpen?

Het gaat om de volgende website: http://www.big-bug.nl/peer

Dit moet er gebeuren.
http://www.big-...ait&id=?
Moet worden:http://www.big-bug.nl/peer/wait/id/
http://www.big-...ame&id=?
Moet worden:http://www.big-bug.nl/peer/game/id/
Volgensmij kunnen deze worden samengetrokken in 1 rule
http://www.big-bug.nl/index.php?pagina=home
Moet worden:http://www.big-bug.nl/home/

Kan iemand deze (2?) regels voor mij maken zodat ik ze kan gebruiken? 

Alvast bedankt 
Offline Ultimatum - 28/11/2006 17:40
Avatar van Ultimatum PHP expert Zoiets werkt wel (denk ik) wel:

  1. Options FollowSymLinks
  2. RewriteEngine on
  3. RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)$ index.php?pagina=$1&id=$2 [L,QSA]
  4. RewriteRule ^([a-zA-Z0-9]+)$ index.php?pagina=$1 [L,QSA]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.294s