[apache] Mod_rewrite instellen

Pagina: 1
Acties:

  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 20-02 10:35

TwoR

Gekleurde stippen

Topicstarter
Hoi, Ik ben bezig om mod_rewrite te gaan gebruiken en het lukt me aardig alleen komt er niet het gewenste resultaat uit.

In de Apache configuratie staat dat de mod_rewrite module ingeschakeld. Als ik de phpinfo() ga bekijken staat bij Loaded modules ook netjes mod_rewrite.

Ik heb nu de volgende code in mijn .htaccess bestand staan:
code:
1
2
3
4
Options Indexes FollowSymLinks
RewriteEngine On
RewriteBase /home/sites/site17/web/test
RewriteRule ^/shortcut$ /images


Volgens mij zou www.domein.nl/test/shortcut nu moeten verwijzen naar www.domein.nl/test/images. Ik krijg in de errorlog geen foutmeldingen meer. Het enige wat ik te zien krijg is dat www.domein.nl/test/shortcut niet bestaat op de server. Ik krijg dus een 404 error.

Volgens mijn ISP is de code goed en staat het op de server goed ingesteld, maar toch blijft het gewenste resultaat uit. Heeft er iemand een idee wat ik vereerd doe want ik kom er niet meer uit.

Ik heb de volgende documentatie gebruikt:
http://www.sitepoint.com/article/guide-url-rewriting
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

  • Sendy
  • Registratie: September 2001
  • Niet online
URL's die directories aanduiden worden officieel geschreven met een / aan het eind. Apache kan daarom moved-permanentelys geven voor URL's zonder / (naar de URL met /).

Misschien moet je het eens proberen met
code:
1
RewriteRule ^/shortcut/$ /images/


of iets als het volgende

code:
1
RewriteRule ^/shortcut(.*)$ /images/


Al zal dat laatste alle URLs waarvan het path-deel begint met shortcut vertalen naar http://host/images/ -- daar moet je dus nog iets aan doen.

[ Voor 37% gewijzigd door Sendy op 17-11-2005 13:26 ]


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 20-02 10:35

TwoR

Gekleurde stippen

Topicstarter
Sendy schreef op donderdag 17 november 2005 @ 13:24:
URL's die directories aanduiden worden officieel geschreven met een / aan het eind. Apache kan daarom moved-permanentelys geven voor URL's zonder / (naar de URL met /).

Misschien moet je het eens proberen met
code:
1
RewriteRule ^/shortcut/$ /images/


of iets als het volgende

code:
1
RewriteRule ^/shortcut(.*)$ /images/


Al zal dat laatste alle URLs waarvan het path-deel begint met shortcut vertalen naar http://host/images/ -- daar moet je dus nog iets aan doen.
Beide oplossingen veranderen niks aan het probleem :(

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Je RewriteBase is tov je URL; in dit geval dus / :) Verder kun je in je Rule de leading / weglaten

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 20-02 10:35

TwoR

Gekleurde stippen

Topicstarter
Oke ik het.

code:
1
2
RewriteBase /
RewriteRule ^shortcut$ /test/images/


Op deze manier werkt het. De Base moest inderdaad vanaf de root van de site. En de rule moest ^sortcut$ wezen ipv ^/shortcut$

Nu eens kijken hoe je subdirs kan maken.

Bedankt in iedergeval!

[ Voor 9% gewijzigd door TwoR op 17-11-2005 13:44 ]


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 20-02 10:35

TwoR

Gekleurde stippen

Topicstarter
Toch nog lastiger als dat ik dacht.
Ik was aan het proberen om url's netjes weer te geven.
Nu heb ik het als volgt:
code:
1
http://www.domeinnaam.nl/bmp.php/page/hoofd_id/sub_id/item_id


In de bmp.php wordt nu de url geplitst op de "/" en vervolgens wordt er een URL gemaakt en daarna word je via de headers doorgestuurd naar de juiste pagina. De URL ziet er dan ongeveer zo uit:
code:
1
http://www.domeinnaam.nl/page.php/hoofd_id=1&sub_id=2&item_id=3


Nu wil ik dit dus netjes gaan weer geven via een rewriterule. Op deze pagina heb ik gevonden hoe zoiets zou kunnen ongeveer zo:

code:
1
RewriteRule /products/([0-9]+) /products.php?id=$1


hier wordt dus 1 id meegegeven. Alleen mijn vraag is dus hoe krijg ik de pagina ook nog variabel? En niet altijd alle id's (hoofd,sub en item) hoeven gezet te zijn. Hoe kan ik een check bouwen zodat die kijkt welke id's allemaal gezet zijn?

Dit had een edit moeten wezen

[ Voor 5% gewijzigd door TwoR op 17-11-2005 15:05 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

:? Je hebt 'nette' URLs; die rewrite je niet alleen naar de 'lelijke' echte URLs; maar je stuurt dat ook nog als header naar de browser. Nu wil je die lelijke URL's weer mooi gaan maken :? Waarom gebruik je geen interne rewrite; dan klopt je huidige situatie toch perfect?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 20-02 10:35

TwoR

Gekleurde stippen

Topicstarter
Nee ik wil die lelijke url's niet weer netjes maken, maar dat is de huidige situatie. Dus mooie url's en dan doorsturen en dan worden het weer lelijke url's.

Nu wil ik dit dus via een interne rewrite doen zodat je er niks van ziet en zodat je niet meer hoeft door te sturen. Alleen hier zit mijn probleem. Hoe kan ik het dynamisch maken?
Pagina: 1