Klein probleem met .htaccess
en ik wil de volgende URL graag een seo url hebben:
http://domein.nl/firefox_4_de_grote_winnaar/process/
Deze pagina doet eigenlijk het volgende:
http://domein.nl/blog_item.php?seo_url=firefox_4_de_grote_winnaar&action=process
Zo wil ik graag een contact form versturen
Zorgt ervoor dat:
http://domein.nl/firefox_4_de_grote_winnaar
werk, maar hoe doe ik nu die action erbij zetten? ik had het zo geprobeerd:
maar dat werkte niet...
Wat doe ik fout en hoe moet het wel?
Je moet de langere URLs bovenaan zetten. Als ie nu blog/blabal/ vind stopt hij, terwijl jij er wellicht "process" achter hebt staan.
Bedankt dat heb ik nu gedaan:
http://www.domein.nl/blog/firefox_4_de_grote_winnaar&action=process
Dat werkt, maar
http://www.domein.nl/blog/firefox_4_de_grote_winnaar/process
Kom ik op de http://www.domein.nl/blog/firefox_4_de_grote_winnaar uit
.htaccess
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
RewriteRule ^portfolio$ portfolio.php
RewriteRule ^kennis$ kennis.php
RewriteRule ^contact$ contact.php
RewriteRule ^blog/([^/]+)/process /blog_item.php?seo_url=$1&action=$2 [NC]
RewriteRule ^blog/([^/]+) /blog_item.php?seo_url=$1 [NC]
RewriteRule ^blog$ blog.php
RewriteRule ^blog/naam$ 404.php
RewriteRule ^404$ 404.php
RewriteRule ^kennis$ kennis.php
RewriteRule ^contact$ contact.php
RewriteRule ^blog/([^/]+)/process /blog_item.php?seo_url=$1&action=$2 [NC]
RewriteRule ^blog/([^/]+) /blog_item.php?seo_url=$1 [NC]
RewriteRule ^blog$ blog.php
RewriteRule ^blog/naam$ 404.php
RewriteRule ^404$ 404.php
Wat gaat er nu nog fout?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Dan in PHP:
$page_request = explode("/",$_SERVER['REQUEST_URI']);
foreach($page_request as $k=>$v){
$page_request[$k] = strip_tags( $v );
}
$page_request bevat dan in een array elke waarde die tussen elke /.../ staat.
Aanvulling: Je hebt dus in basis maar 1 bestand - de index - waar je naar verwijst. DIe laat je bepalen hoe het script verder afgehandeld wordt.
Gewijzigd op 28/03/2011 19:45:18 door Erwin Bot
Code (php)
1
2
3
4
5
2
3
4
5
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Dat is mn .htaccess maar vervolgens worden de links zoals /blog /contact /portfolio helemaal niet opgepakt, maar naar de index.php verwezen.
Edit: ik heb niet alleen een index.php maar ook blog.php contact.php etc. etc.
Toevoeging op 28/03/2011 20:06:41:
Erwin ik denk dat jouw .htaccess code wat te hoog gegrepen is, ik heb nu geen zin om alles vanuit de index te laten generen.
Eigenlijk wil ik gewoon dat:
naar /blog/titel/process gaat en dan de action=process opvangt, maar dat gebeurd niet terwijl als ik print_r($_GET); doe wel de seo_url wordt uigelezen.
Hoe kan dat
Gewijzigd op 28/03/2011 19:53:21 door Pong Zor
Je hebt 2 variabelen nodig om $1 en $2 te vullen. Werkt dat beter?
Gewijzigd op 28/03/2011 20:27:31 door Erwin Bot
Bedankt. ik heb zelf ook nog een uurtje lopen klieren en ik kwam op hetzelfde uit :P toch bedankt in ieder geval