login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mod rewrite (Opgelost)

Offline raintjah - 13/09/2007 12:47
Avatar van raintjahNieuw lid Hallo,

eerst en vooral: ik heb 80% van alle mod rewrite topics doorgelezen, ik heb op deze site de mod rewrite tutorial gelezen, en nog een stuk of 3 op het internet. Ik kom er niet uit, en mijn probleem is nog héél erg basic. Ik zie waarschijnlijk één dom ding over het hoofd ofzo, weet ik veel  .

in mijn root heb ik het volgende staan in het bestand 'htaccess.htaccess':

  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^(.*)(/)?$ index.php?page=$1 [L]


Die rewriterule heb ik uit volgende topic: http://www.site...s_vraagjes

ALLE links op mijn website zien er hetzelfde uit, namelijk zo:
  1. http://127.0.0.1/index.php?page=Home

of
  1. http://127.0.0.1/index.php?page=Links


Je begrijpt het wel denk ik.

Nu heb ik mijn url's als volgt gemaakt:
  1. <a href="Home">Home</a>

of
  1. <a href="Links">Links</a>


Wanneer ik nu op zo'n link klik krijg ik:

Not Found
The requested URL /Login was not found on this server.



Nogmaals, ik heb al enorm veel topics gelezen op deze site, maar kom er niet uit...

12 antwoorden

Gesponsorde links
Offline merlin_nl - 13/09/2007 13:23
Avatar van merlin_nl PHP interesse in je serverconfig (bij de vhost) moet je het volgende nog hebben.

<VirtualHost......>
.....
<Directory "jou directory">
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>

je .htaccess word mogelijk niet gelezen door de AllowOverride.
Met de AllowOverride All werkt dit wel.

ik gebruik zelf b.v.
  1. RewriteEngine On
  2.  
  3. RewriteRule ^registreer$ registreer.php [L]
  4. RewriteRule ^inloggen$ inloggen.php [L]
  5. RewriteRule ^wachtwoordvergeten$ wachtwoordvergeten.php [L]
  6. RewriteRule ^uitloggen$ uitloggen.php [L]
  7.  
  8.  
  9. # ERRORDOCUMENTS
  10. ErrorDocument 505 /error/505/
  11. ErrorDocument 408 /error/408/
  12. ErrorDocument 400 /error/400/
  13. ErrorDocument 401 /error/401/
  14. ErrorDocument 500 /error/500/
  15. ErrorDocument 403 /error/403/
  16. ErrorDocument 501 /error/501/
  17. ErrorDocument 404 /error/404/
  18. ErrorDocument 502 /error/502/
  19. ErrorDocument 405 /error/405/
  20. ErrorDocument 503 /error/503/
  21. ErrorDocument 504 /error/504/
  22. ErrorDocument 415 /error/415/
  23. ErrorDocument 302 /error/302/
  24.  
  25. RewriteRule ^error/(.*)/ error.php?error=$1
Offline raintjah - 13/09/2007 20:06 (laatste wijziging 13/09/2007 22:14)
Avatar van raintjah Nieuw lid Oké, alles werkt nu. Nog één probleem echter:

om de een of andere reden pakt de mod rewrite mijn layout niet mee.. ik heb al eens gezocht naar een oplossing, ook op dit forum, en daar ligt het telkens aan een css sheet dat nog ergens bijgezet moet worden ofzoiets. Maar, ik gebruik helemaal geen CSS. Gewoon HTML tabellen met mijn prentjes in... (zie www.win-trader.com). Weet er iemand hoe ik mijn layout nog meekrijg?
Alvast bedankt!

EDIT:
ALLE JONG!
Das nu toch straf hé?
Das net of heel da systeem nie werkt bij mij ofzo, buh.
Ik geef dus in: http://www.win-trader.com/Links/
Volgens die rewrite rule moet ie nu 'Links' doorgeven naar $1, en moet er dus van maken: http://www.win-trader.com/index.php?page=Links

Ma denkt ge dat ie da doet??    
Offline marten - 13/09/2007 22:35
Avatar van marten Beheerder Zet je afbeeldingen in een aparte map. En zorg dat je hier mod_rewrite niet aanzet. Oftewel. Zet de mod rewrite hier uit.
Offline raintjah - 14/09/2007 00:25
Avatar van raintjah Nieuw lid Afbeeldingen staan in een aparte map (images). Hoe zorg ik ervoor dat rewrite niet aanstaat in die map?

Alvast bedankt voor je reactie!
Offline Thomas - 14/09/2007 12:33
Avatar van Thomas Moderator Euh? Is helemaal niet nodig. Gebruik gewoon een base href?
En pas het src-attribuut van je afbeeldingen hier op aan?

In je head;
<base href="http://www.jesite.com/" />

linken naar afbeeldingen:
locatie: http://www.jesite.com/images/whatever.gif

img-tag:
<img src="images/whatever.gif" />

Ongeacht waar je op de site zit...
Offline raintjah - 14/09/2007 15:24
Avatar van raintjah Nieuw lid Ik heb base href toegevoegd aan mijn <head>, maar dat mocht helaas niet baten... :(

Ik heb een voorbeeld van het probleem geupload. Ga maar eens naar http://www.win-trader.com en klik rechts in het menu op 'Links'... Dan zie je dat de volledige layout wegvalt.
Offline Thomas - 14/09/2007 15:33
Avatar van Thomas Moderator Bekijk de source eens als je in links zit? Die bevat alleen de content van die pagina, en verder niets.

Dat is iets wat je zult moeten veranderen: Als het item waar je naar verwijst in de URL bestaat, zal ie verder weinig doen met je rewrite-zut.

Je zult links dus ergens anders moeten onderbrengen, bijvoorbeeld code/links.php ofzo.
Offline raintjah - 14/09/2007 16:13
Avatar van raintjah Nieuw lid Ik ga mijn links in de map 'urls' plaatsen, maar nu werkt mijn paginasysteem niet meer:

  1. <?php
  2. if(isset($_GET['page']) and file_exists($_GET['page'].".php")) {
  3. include($_GET['page'].".php");
  4. } else
  5. {
  6. ?>


Moet dan worden:
  1. <?php
  2. if(isset($_GET['page']) and file_exists($_GET['page'].".php")) {
  3. include('urls/$_GET['page'].".php"');
  4. } else
  5. {
  6. ?>


Maar dat werkt helaas niet.. 
Offline Thomas - 14/09/2007 16:14
Avatar van Thomas Moderator Pad in file_exists ook aanpassen eh?
Offline raintjah - 14/09/2007 16:18
Avatar van raintjah Nieuw lid Ja, maar je moet eens kijken naar de kleuren van de code. Er zit iets fou met die aanhalingstekens denk ik.

Bedankt voor al je hulp!
Offline Thomas - 14/09/2007 16:20
Avatar van Thomas Moderator 'urls/$_GET['page'].".php"'

-->

'urls/'.$_GET['page'].'.php'

en ik zou er $_SERVER['DOCUMENT_ROOT'] in zetten, om er zeker van te zijn dat je een lokale file include.
Offline raintjah - 14/09/2007 16:27 (laatste wijziging 14/09/2007 20:40)
Avatar van raintjah Nieuw lid Dus, als ik je goed begrijp:

include(''.$_SERVER['DOCUMENT_ROOT'].'urls/'.$_GET['page'].'.php');

FangorN, bedankt!

Edit: hierboven werd gepraat over <directory "jouwdirectory>
Wat is jouwdirectory?  

EDIT2:
Het moet zijn "$path/www" denk ik. Verder heb ik ook dit in mijn httpd.conf:


  1. <Directory "${path}/www">
  2.  
  3. #
  4. # This may also be "None", "All", or any combination of "Indexes",
  5. # "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
  6. #
  7. # Note that "MultiViews" must be named *explicitly* --- "Options All"
  8. # doesn't give it to you.
  9. #
  10. Options Indexes FollowSymLinks Includes
  11.  
  12. #
  13. # This controls which options the .htaccess files in directories can
  14. # override. Can also be "All", or any combination of "Options", "FileInfo",
  15. # "AuthConfig", and "Limit"
  16. #
  17. AllowOverride All
  18.  
  19. #
  20. # Controls who can get stuff from this server.
  21. #
  22. Order allow,deny
  23. Allow from all
  24. </Directory>


Maar mijn mod_rewrite werkt nog steeds niet op mijn lokale server...

Dit is mijn htacces:
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^urls/(.*)(/)?$ index.php?page=$1 [L]



EDIT 3:
Opgelost. Mijn bestand heette blabla.htaccess ipv .htaccess. Ik dacht altijd dat de bestandsnaam van dat bestandje niet uitmaakte... kutzooi 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.309s