Toon posts:

.htaccess: alle domeinaliassen naar 1 map te sturen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Met een paar regels in de .htaccess verwijs ik wat domeinaliassen naar een map van het hoofddomein.

Zeg, we hebben:
hoofdomein.nl
hoofdomein.nl/mapmetzooi

En dan heb ik aan dit account nog 2 domeinnamen als alias toegevoegd, zeg:
domein1.nl -> die wijst naar hoofdomein.nl/mapmetzooi
domein2.com -> die wijst ook naar hoofdomein.nl/mapmetzooi

code:
1
2
3
4
5
RewriteCond %{HTTP_HOST} ^(www\.)?domein1\.nl$ [NC]
RewriteRule !^mapmetzooi/ /mapmetzooi%{REQUEST_URI} [L,NC]

RewriteCond %{HTTP_HOST} ^(www\.)?domein2\.com$ [NC]
RewriteRule !^mapmetzooi/ /mapmetzooi%{REQUEST_URI} [L,NC]


Met bovenstaande regels werkt dit perfect, het werkt met en zonder www. En de domeinalias-naam blijft zichtbaar in de adresbalk.

Nu wil ik nog een paar domeinaliassen toevoegen, dus ik dacht, kan dat bovenstaande niet makkelijker, dus dat gewoon alles wat niet hoofdomein.nl of www.hoofdomein.nl heeft als HTTP_HOST, naar die map 'mapmetzooi' gaat?

Het is lastig googlen, bijvoorbeeld: htaccess redirect domain aliasses to folder
Want in elk voorbeeld dat ik zie wordt alles doorgestuurd naar de folder, ook het hoofdomein. Ik heb al 2 dagen zitten klooien, maar ik ben geen ster in .htaccess, dat is wel duidelijk, en ook niet in reg. expressies.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oh, haha, het kwartje is eindelijk gevallen. Ik kan gewoon net als in PHP een ! gebruiken voor 'niet'.

Dus dit werkt:
code:
1
2
RewriteCond %{HTTP_HOST} !^(www\.)?hoofdomein\.nl$ [NC]
RewriteRule !^mapmetzooi/ /mapmetzooi%{REQUEST_URI} [L,NC]


:)

Acties:
  • 0 Henk 'm!

  • Dav1d
  • Registratie: December 2003
  • Niet online
Zijn de aliassen wildcards? In dat geval zou ik een extra controle inbouwen tegen ongewenste subdomeinen:

code:
1
2
3
RewriteCond %{HTTP_HOST} !^(www\.)?hoofdomein\.nl$
RewriteCond %{HTTP_HOST} ^(www\.|(?!\.))[a-z0-9_-]+\.[a-z]+$
RewriteRule !^mapmetzooi/ /mapmetzooi%{REQUEST_URI} [L]


Zodat als je grapjas.domein.nl bezoekt het niet lijkt alsof dat adres werkelijk zo bedoeld is.

Edit: RewriteCond gefixt.
Note: werkt niet als de domeinextensie een second-level domein is zoals co.uk.

[ Voor 12% gewijzigd door Dav1d op 19-05-2016 14:06 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dav1d schreef op woensdag 18 mei 2016 @ 22:15:
[...]

Zijn de aliassen wildcards? In dat geval zou ik een extra controle inbouwen tegen ongewenste subdomeinen:

code:
1
2
3
RewriteCond %{HTTP_HOST} !^(www\.)?hoofdomein\.nl$
RewriteCond %{HTTP_HOST} ^(www\.|[^\.])[a-z0-9_-]+\.
RewriteRule !^mapmetzooi/ /mapmetzooi%{REQUEST_URI} [L]


Zodat als je grapjas.domein.nl bezoekt het niet lijkt alsof dat adres werkelijk zo bedoeld is.
Nee, het zijn gewoon andere domeinnamen. Als je nu invult grapjas.domein.nl dan krijg je:
This site can’t be reached, grapjas.domein.nl’s server DNS address could not be found.
Als ik jouw extra regel toevoeg, dan geeft ie dezelfde melding.
Maar bedankt voor de tip!

In de map waar alle andere domeinnamen uitkomen check ik nog op welke domeinnaam het is met PHP:
code:
1
if (substr($_SERVER['HTTP_HOST'], 0, 4) == 'www.') $domein = substr($_SERVER['HTTP_HOST'], 4); else $domein = $_SERVER['HTTP_HOST'];

en dan hou ik $domein tegen een query met het lijstje domeinnamen die het mogen zijn (die heb ik zelf ingevoerd in een tabel) en dan doe ik daar iets mee, en anders zegt ie 'domeinnaam' niet gevonden.

[ Voor 4% gewijzigd door Verwijderd op 19-05-2016 10:10 ]


Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 11-10 20:56
Je moet zoals de foutmelding al aangeeft ook je DNS instellingen wijzigen voor dat Domein. Als je namelijk alleen http://domein.nl en http://www.domein.nl in je DNS records hebt staan dan gaan die subdomeinen niet werken :)

[ Voor 42% gewijzigd door Saeverix op 19-05-2016 10:20 ]

People who live in glass houses shouldn't throw stones.


Acties:
  • 0 Henk 'm!

  • Dav1d
  • Registratie: December 2003
  • Niet online
Saeverix schreef op donderdag 19 mei 2016 @ 10:11:
Je moet zoals de foutmelding al aangeeft ook je DNS instellingen wijzigen voor dat Domein.
Nee, het is juist gewenst dat andere subdomeinen niet werken. :P

TS, ik zou wel al het verkeer naar http://domein.nl redirecten naar http://www.domein.nl (of andersom), dat voorkomt problemen met cookies en is beter voor SEO:

code:
1
2
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Acties:
  • 0 Henk 'm!

  • Saeverix
  • Registratie: Maart 2002
  • Laatst online: 11-10 20:56
Dav1d schreef op donderdag 19 mei 2016 @ 14:06:
[...]

Nee, het is juist gewenst dat andere subdomeinen niet werken. :P
Zolang hij geen "wildcard" A record in zijn DNS heeft staan gaan die subdomeinen niet werken...

Daarnaast moet de site op waar je dit op wilt doen ook luisteren op die *.domein.nl...

[ Voor 13% gewijzigd door Saeverix op 19-05-2016 14:44 ]

People who live in glass houses shouldn't throw stones.

Pagina: 1