Htaccess
De link is nu: site.nl/bericht/veranderen?id=1.
Hoe ik het wil hebben: site.nl/bericht/veranderen/1/
Nu heb ik zelf al wat stappen ondernomen. Mijn htaccess ziet er als volgt uit:
Code (php)
1
2
3
2
3
RewriteEngine On
RewriteBase /
RewriteRule ^bericht/veranderen/(.*) bericht/veranderen?id=$1 [L,QSA]
RewriteBase /
RewriteRule ^bericht/veranderen/(.*) bericht/veranderen?id=$1 [L,QSA]
Als ik naar site.nlbericht/veranderen/1 ga heb ik geen effect, en geen idee wat ik fout doe.
Htaccess is niet echt mijn ding, toch wil ik de URL's mooi hebben.
Kan iemand me helpen?
in jou geval krijg je dan /?request=/bericht/veranderen/1/ dus $_GET['request'] = "/bericht/veranderen/1/"
Code (php)
1
2
3
4
5
6
2
3
4
5
6
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]
RewriteRule ^(.*?)$ index.php?pagina=$1 [L,QSA]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^(.*?)$ $1 [L]
RewriteRule ^(.*?)$ index.php?pagina=$1 [L,QSA]
Hetzelfde als @Henze zei dus, maar dan request -> pagina maken.
site.nl/index.php?pagina=bericht/veranderen werkt, maar als ik site.nl/index.php?pagina=bericht/veranderen/1 doe krijg ik een 404. Hij pakt het ID dus niet.
Die pagina's goedzetten had ik al, maar het gaat me nu om het ID.
Gewijzigd op 24/12/2012 17:56:06 door Machiel K
das toch simpel? in php krijg je een $_GET['pagina'] variabele met "bericht/veranderen/1" gebruik end(explode("/", $_GET['pagina'])) om de laatste variabele op te halen?
Toevoeging:
Eigenlijk een onhandige manier? Want er bestaat geen pagina die site.nl/bericht/veranderen/1 heet, dus krijg je een 404 error..
Gewijzigd op 27/12/2012 14:41:47 door Machiel K
([0-9]+), omdat je alleen een ID wilt ophalen dat alleen uit getallen bestaat. Als je meerdere variabelen wil ophalen doe je gewoon simpelweg:
Misschien doe ik iets verkeerds, maar bij mij werkt het wel altijd...
Gewijzigd op 27/12/2012 20:11:23 door Danny L
---
Zou het dus zijn in mijn geval.
Werkt alleen niet, 404 error.
Komt allemaal denk ik omdat ik
al gebruik om de pagina's al mooi te maken.
De pagina's haal ik op deze manier op:
Code (php)
site.nl/berichten/veranderen/1 bestaat dus niet omdat in de map pagina -> berichten -> veranderen geen 1.php staat. Er word dus een 404 geïncluded.
Gewijzigd op 27/12/2012 20:43:36 door Machiel K
I.p.v.
Gebruik je:
Dan zijn je pagina's die je aanroept via index.php te bereiken via: site.nl/page/welkom
Persoonlijk gebruik ik dit:
Wanneer je een php bestand aanmaakt: mijnpagina.php, dan kan je die bereiken via: site.nl/mijnpagina.
Met je 404 document gebruik je:
Misschien een beetje rommelig allemaal, maar misschien heb je er wat aan ;p
Danny L op 27/12/2012 20:46:46:
Maar dan moet jij bij een pagina maken toch elke keer opnieuw alle div's ect typen? Zo'n paginasysteem is juist makkelijk omdat je dan je banner, footer niet steeds in elke php file hoeft over te nemen.
In header.php natuurlijk de html/php voor je header en footer.php de html/php voor je footer.
In elke pagina zet je gewoon
Gewijzigd op 27/12/2012 20:57:00 door Danny L
Dat kan ook. Liever wil ik site.nl/bericht/veranderen/1. Ik zal is verder zoeken.
iig kun je een parser maken in php die op basis van die string de juiste code er bij roept...ik heb een OOP systeem gemaakt waarbij de eerste string (bericht) een controller/view class is en de rest wordt een functie dan kijkt ie of veranderen1 een functie is..zo nee...is veranderen dan een functie, zo ja execute.
Toevoeging op 28/12/2012 09:29:21:
Zo onhandig is mijn manier anders niet... maar zo hoef je maar 1x htaccess te pakken en kun je in PHP een script schrijven die kijkt of er een pagina is aan te roepen. bijv in het mapje bericht php bestand met naam veranderen.php en dan die laatste als variabele die in een numerieke array is op te halen onder $variables[0];
iig kun je een parser maken in php die op basis van die string de juiste code er bij roept...ik heb een OOP systeem gemaakt waarbij de eerste string (bericht) een controller/view class is en de rest wordt een functie. dan kijkt ie of "veranderen1" een functie is..zo nee...is "veranderen" dan een functie, zo ja execute met variabelen.
Code (php)
1
RewriteRule ^bericht/veranderen/([0-9]+)$ index.php?pagina=bericht/veranderen&id=$1 [L,QSA]
Gewijzigd op 03/01/2013 12:43:25 door Machiel K