Hét vraag- en antwoordplatform van Nederland

Hoe kan ik in een .htaccess subdomein aanmaken?

Mijn website maakt gebruik van een .htaccess bestand om RewriteRule's toe te passen, hiermee wordt de link domein.nl/index.php?berichten veranderd in bijvoorbeeld domein.nl/berichten/

Maar nu zit ik met een probleempje, ik wil een echte subdomein aanmaken op mijn server; domein.nl/subdir/ alleen, hoe geef ik dit in de htaccess aan?

Mijn domein staat bij Transip en heeft DNS koppeling met mijn versio hosting, is dit ook van belang? Voor mijn gevoel zit het echt in htaccess.

11 jaar geleden
1.7K
Verwijderde gebruiker
11 jaar geleden
Je haalt subdomein en subdirectory volgens mij door de war. Een subdomein is onderdeel.jouwsite.nl .
Een subdirectory is jouwsite.nl/onderdeel . Wil je dat jouwsite.nl/onderdeel het gaat doen, ookal bestaat de map niet?
Richardvdm
11 jaar geleden
Sorry, dat is ook zo. Op de server staat een map en die map moet door middel van domein.nl/subdir/ bereikbaar zijn. Normaal is dat ook zo maar ik denk dat .htaccess nu in de weg zit.

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (1)

De makkelijkste manier om echte en niet-echte subpaden in je URLs mogelijk te maken, is door alles wat geen bestand oplevert, door te sturen naar je index.php.

Heeft de URL vervolgens geen betekenis binnen je applicatie, dan laat je je applicatie een 404-pagina weergeven.

De volgende code in htaccess zal alles wat geen bestand is, naar index.php sturen:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

Als je toch alleen voor een bepaalde subdirectory een uitzondering wil maken, dan kan dat door de volgende conditie boven de RewriteRule te plaatsen:

RewriteCond %{REQUEST_URI} !mapDieEchtBestaat

Toegevoegd na 25 minuten:
Bedoelde je echt een subdomein, en wil je die onder een subdirectory hangen, dan zul je ten eerste dat subdomein moeten aanmaken in je DNS beheerpaneel bij TransIP. Maar zij moeten zorgen dat dat subdomein naar dezelfde website wijst in de HTTP configuratie.

Als dat geregeld is, kun je Rewrite rules instellen die alle verzoeken naar subdomein.jewebsite.nl prefixen met de overeenkomstige subdirectory. Dat doe je zo:

RewriteCond %{HTTP_HOST} ^subdomein\.jewebsite\.nl
RewriteRule ^(.*)$ jesubdirectory/$1 [QSA,L]
(Lees meer...)
Verwijderde gebruiker
11 jaar geleden
Richardvdm
11 jaar geleden
Ja, ik wil dus een uitzondering maken op één directory. "RewriteCond %{REQUEST_URI} !mapDieEchtBestaat" werkt helaas niet.

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 2500
Gekozen afbeelding