ik heb wildcard dns aangevraagd voor een domeinnaam. nu wil ik het zo hebben dat bijvoorbeeld: cat.domein.nl/site/ naar domein.nl/cat/site/ gaat, zonder dat je dat in de adresbalk ziet, en ik heb al veel lopen spelen met htaccess, maar ik krijg het niet voor elkaar om 2 variabelen door te sturen, op dit moment werkt het zo:

RewriteEngine on
RewriteCond %{HTTP_HOST}!^(www\.)?domein\.nl [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domein\.nl [NC]
RewriteRule .* /index.php?cat=%1 [L]

en daarmee kan hij dus maar 1 variabele (namelijk de cat) doorsturen.

weet iemand een oplossing?
bij voorbaat dank
oke, aangezien niemand het blijkbaar weet heb ik in de tussentijd niet stil gezeten, ondertussen is dit mijn .htaccess en het werkt prima op 1 ding na. hij verandert de URL en ik wil graag dat het sub.domein.nl/titel/ blijft, nu maakt hij er gewoon www.domein.nl/?cat=cat&p=titel van.
mijn .htaccess is:

RewriteEngine on
RewriteCond %{HTTP_HOST} internet.domein.nl
RewriteRule (.*) http://www.domein.nl/?cat=Internet&p=$1 [R]

weet iemand misschien hier de oplossing voor?
bvd
[R] Zorgt voor een redirect. Gebruik [L], dan blijft de URL zoals hij hoort en je querystring wordt ook meegestuurd.

Lees verder eens de documentatie van mod_rewrite

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

voornamelijk het stuk over de flags bij de sectie RewriteRule Directive is interessant. mod_rewrite is ontzettend krachtig!
eindelijk een reactie! bedankt! maar als ik een de [R] verander naar [L] krijg ik een 500 Internal Server Error...

RewriteEngine on
RewriteCond %{HTTP_HOST} internet.domein.nl
RewriteRule (.*) http://www.domein.nl/?cat=Internet&p=$1 [L]
Dat betekent in dit geval waarschijnlijk dat de URL die ontstaat na de rewrite niet bestaat. Dat is niet geheel onlogisch, omdat de querystring (alles achter dat vraagteken) niet aan een file meegeeft.

RewriteRule (.*) http://www.domein.nl/index.php?cat=Internet&p=$1

Now, this makes sense. Zorg er dan natuurlijk wel voor dat index.php de file is waar je de argumenten aan wilt geven.

Waarom dit probleem niet optreedt bij [R]? Bij een redirect wordt er een 'hey, dit bestand ken ik niet, ga naar deze url' naar de browser van de client gestuurd.
Als de browser dan gehoorzaamd en er dus bij Apache een extern verzoek binnen komt, is ze zo slim om er index.php tussen te plakken. Als het een interne redirect is (dit is het geval bij [L]), gebeurt dat niet. mod_rewrite is namelijk eigenlijk een soort hack die later in de core van apache geplaatst is, vandaar.

Succes!

Goed, ik wil je nogmaals bedenken voor je hulp, ik had het zelf al opgelost door het subdomein te exploden uit de url en alleen de de p met $_GET["p"] te pakken. maar als ik zoek nog steeds naar een goeie oplossing om beiden met htaccess te regelen. misschien wil je me nog 1x verbeteren? want al die tekst op de apache site dringt gewoon niet tot me door.

RewriteEngine on
RewriteCond %{HTTP_HOST}!^(www\.)?kiesjehosting\.nl [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.kiesjehosting\.nl [NC]
RewriteRule ^(.*)/ http://www.kiesjehosting.nl/index.php?cat=%1&p=$1

dit is mijn .htaccess nu. als ik de pagina probeer te pakken, dus http://www.domein.nl/{pagina}/ krijg ik een 404, de categorie wordt helemaal niks mee gedaan.

Reageren