htaccess rewrites voor multiple domains

Plaats reactie
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

Hoi,

Ik heb onlangs hosting genomen bij pcextreme.nl (dynamic pakket), lekker goedkoop en in principe voldoende voor wat ik 't nodig heb. _als_ ik onderstaande werkende krijg ;)
Default in de hosting komen alle gekoppelde domains als aliasses van het main domain.

Ik heb 4 domains, welke allemaal afzonderlijke sites hosten. In m'n huidige pakket werkt dat allemaal zonder enig probleem, maar bij PCExtreme krijg ik het niet deftig aan de praat.
(Momenteel ben ik puur aan't testen door het IP in lokale hosts file te zetten, zodoende moet ik niet constant in de DNS zitten prullen)

Main domain (gekoppeld aan hosting): kcore.org. Ik wil dus dat andere domains op andere locaties uitkomen.

Ik heb al zitten testen met http://htaccess.madewithlove.be/ - syntax zou moeten kloppen, de rules matchen ook zoals ik zou verwachten, maar toch..
Toegang tot error_log heb ik niet (jammergenoeg).

Onderstaande .htaccess zit in m'n DocumentRoot:

Code: Selecteer alles

RewriteEngine on
RewriteBase /

# The actual host to directory translation
# Not *.kcore.org, but there is a subdomain
RewriteCond %{HTTP_HOST} !^.*kcore\.org [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ /domains/%2/htdocs/%1/$1 [L]

#  Not kcore.org, no subdomain, redirect to the www/ folder
RewriteCond %{HTTP_HOST} !^kcore\.org [NC]
RewriteCond %{HTTP_HOST} ^([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ /domains/%1/htdocs/www/$1 [L]
De directory structuur on site bestaat uit:
Homedir: /home/vhosting/b/vhost00xxxx/

Tree:

Code: Selecteer alles

.
├── domains
│   ├── deluyck.be
│   │   └── htdocs
│   │       └── www
│   │           └── index.html
│   └── kcore.org
│       └── htdocs
│           ├── domains -> ../../../domains/
│           ├── kcore -> www
│           └── www
└──           └── test.php
Dit blijft echter keer op keer op een error 500 uitdraaien, zodra ik de rewriterule activeer. En ik zie niet direct wat de reden zou kunnen zijn.

Nog ideeen hier?

[Edit: niet-nuttige htaccess rules eruit gezwierd & base aangepast]
Laatst gewijzigd door devilkin op 04 dec 2015, 12:22, 3 keer totaal gewijzigd.
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

Zoiets doe je via VirtualHost (name based hosts)... https://httpd.apache.org/docs/2.2/vhosts/examples.html
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 4578
Lid geworden op: 10 mar 2010, 12:30
Uitgedeelde bedankjes: 58 keer
Bedankt: 446 keer

je base klopt wss niet...
dat zou gewoon RewriteBase / moeten zijn (relatief aan je webroot, niet je fysieke pad)
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

Ah, damn, die RewriteBase was nog van een testje. Terug aangepast naar / - resultaat blijft evenwel hetzelfde.

De hosting gebruikt ofwel DocumentRoot ofwel VirtualDocumentRoot. In het 2e geval worden alle subdirs onder htdocs/ automatisch subdomains. Ik had evenwel wat zitten lezen, en blijkbaar werken die rewriterules niet deftig onder een VirtDocRoot, dus had ik dit aangepast naar het andere. (niet dat ik veel verschil merk, maar soit)
De bovenste 2 rewrites heb ik erin gezet om die functionaliteit te blijven behouden. Of ze nodig zijn is me weer een andere vraag, ik ga ze er eens uitwippen.
(Na test: geen verschil.)

Het komt er dus op neer dat indien ik domain != kcore.org laat toekomen op m'n vhost, die zou moeten rewriten naar htdocs/domains/<domain>/htdocs/<evt subdomain>.
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 4578
Lid geworden op: 10 mar 2010, 12:30
Uitgedeelde bedankjes: 58 keer
Bedankt: 446 keer

wat je ook kan doen is gewoon alles redirecten naar een index.php en dan van daaruit alles via php doen.

qua htaccess: probeer deze een keer:

dir structuur voor het web:

http://www.DOMEIN1.be => /pad/domein1/www/inhoud
http://www.DOMEIN2.be => /pad/domein1/www/domein2/inhoud

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.DOMEIN2.be(.*)$ [NC]
RewriteRule ^(.*)$ http://www.DOMEIN1.be/domein2/$1 [L,R=301]


EDIT: Options +FollowSymLinks
moet je ook nog hebben zie ik, toegevoegd
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

Ja, dat werkt, maar is ofcourse zo ongelofelijk... brrr.
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

Splitter schreef:wat je ook kan doen is
De juiste oplossing gebruiken...

Code: Selecteer alles

NameVirtualHost x.x.x.x

<VirtualHost x.x.x.x>
  DocumentRoot /domains/deluyck.be/htdocs
  ServerName http://www.deluyck.be
  # Other directives here ...
</VirtualHost>

<VirtualHost x.x.x.x>
  DocumentRoot /domain/kcore.org/htdocs
  ServerName http://www.kcore.org
  # Other directives here ...
</VirtualHost> 
Waarom prutsen met rewrites ? Wat is er mis met VirtualHost ?
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

Het feit dat ik daar geen access op heb. Ja, het is shared hosting. Ja, ik weet dat dat de 'juiste' oplossing is, maar dat heb ik dus niet.
(dus ook geen 'Ja, dan had je dat maar moeten bestellen' antwoorden, als het even kan.)
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
Gebruikersavatar
Splitter
Elite Poster
Elite Poster
Berichten: 4578
Lid geworden op: 10 mar 2010, 12:30
Uitgedeelde bedankjes: 58 keer
Bedankt: 446 keer

eigenlijk ben ik te moe en te lui om htaccess uit te zoeken :D altijd zo'n irritante zaak...
maar misschien kan je met je originele htaccess, zoals die hier nu in de eerste post staat, opnieuw proberen..
maar dan wel die Options +FollowSymLinks erbij zetten, anders kon je zowiezo die domains symlink niet volgen,
mogelijk dat dat het probleem nog is in die code.
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

Ondertussen heb ik dit er dus in staan:

Code: Selecteer alles

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^.*kcore\.org [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ /domains/%2/htdocs/%1/$1 [L]

RewriteCond %{HTTP_HOST} !^kcore\.org [NC]
RewriteCond %{HTTP_HOST} ^([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ /domains/%1/htdocs/www/$1 [L]
Still no dice. Ik heb bij de hosting gevraagd of ze even kunnen doorgeven hoe de vhost definitie in elkaar zit, en of ze bepaalde dingen niet toelaten om te overriden.
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

Als zij VirtualHost gebruiken (wat normaal een hoster doet) dan komt jou niet geregistreerde domain natuurlijk nooit op jou "site" terecht (en kan je nog zoveel rewrites doen als je wil, het zal gewoon niet werken).
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

(Ik heb je post nu 4x gelezen, en ik snap nog niet wat je wilt zeggen. Zoals in OP al gesteld, add-on domains komen terecht als aliasses, dus ik vermoed via ServerAlias directives)

De domains zijn reeds gekoppeld in het panel van PCExtreme. DNS staat nog steeds gepoint naar mijn huidige hosting, maar in lokale hosts override ik het IP. Alsdusdanig kan ik perfect testen zonder de rest te impacteren.

De rewrites via redirect werken - de rewrites zonder redirect niet. En dat laatste probeer ik nu in orde te krijgen.
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
ubremoved_539
Deel van't meubilair
Deel van't meubilair
Berichten: 29849
Lid geworden op: 28 okt 2003, 09:17
Uitgedeelde bedankjes: 446 keer
Bedankt: 1985 keer

devilkin schreef:(Ik heb je post nu 4x gelezen, en ik snap nog niet wat je wilt zeggen. Zoals in OP al gesteld, add-on domains komen terecht als aliasses, dus ik vermoed via ServerAlias directives)
Wat ik wil zeggen is dat je met vermoedens niet ver komt... belangrijk is te weten wat er precies geconfigureerd is onderliggend.

Maar misschien heb ik ook over het hoofd gezien dat er aliasses (en dus geen meerdere domains) waren.

Waarom verander je trouwens van hosting ?
Gebruikersavatar
devilkin
Elite Poster
Elite Poster
Berichten: 4884
Lid geworden op: 17 mei 2006, 20:10
Uitgedeelde bedankjes: 551 keer
Bedankt: 341 keer
Contacteer:

Ondertussen heb ik zelf de situatie gehercreerd op m'n eigen toestel hier, en heb ik de oplossing al gevonden.
Werkende code, die perfect doet wat ik wil, kan mogelijks wel nog wat geoptimaliseerd worden

Code: Selecteer alles

Options +FollowSymLinks 
RewriteEngine on
RewriteBase /

#
# Finish rewriting for primary domain
#

# Not www.kcore.org, not the /domains/ folder, and it is kcore.org subdomain
# ==> domains/kcore.org/htdocs/SUBDOMAIN/
RewriteCond %{HTTP_HOST} !^www\.kcore\.org [NC]
RewriteCond %{REQUEST_URI} !^/domains/ [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.kcore\.org [NC]
RewriteRule ^(.*)$ /domains/kcore.org/htdocs/%1/$1 [L]

#
# Finish rewriting on additional domains
#
RewriteCond %{HTTP_HOST} !^.*kcore.org$ [NC]
RewriteCond %{REQUEST_URI} ^/domains/ [NC]
RewriteRule ^(.*)$ - [L]

# 
# Block access on kcore.org/domains
RewriteCond %{HTTP_HOST} ^.*kcore.org$ [NC]
RewriteCond %{REQUEST_URI} ^/domains/?$ [NC]
RewriteRule ^(.*)$ - [F,L]


#
# The actual host to directory translation
#

# All URI's get www/ prepended (??)

# Not kcore.org, subdomain, but not www!
# ==> domains/HOSTNAME/htdocs/SUBDOMAIN/
RewriteCond %{HTTP_HOST} !^.*kcore\.org [NC]
RewriteCond %{HTTP_HOST} !^www\..*$ [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ /domains/%2/htdocs/%1/$1 [L]

# Not kcore.org, but www subdomain
# ==> domains/HOSTNAME/htdocs/
RewriteCond %{HTTP_HOST} !^.*kcore\.org [NC]
RewriteCond %{HTTP_HOST} ^www\..*$ [NC]
RewriteCond %{HTTP_HOST} ^[^.]+\.([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ /domains/%1/htdocs/$1 [L]

#  Not kcore.org, no subdomain
# ==> domains/HOSTNAME/htdocs/
RewriteCond %{HTTP_HOST} !^.*kcore\.org [NC]
RewriteCond %{HTTP_HOST} ^([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ /domains/%1/htdocs/$1 [L]
Telenet All-Internet -- using CV8560E & OPNsense on PCEngines APU2E4
Proximus & Mobile Vikings -- Using OnePlus 8 Pro (ROM: Stock)
Plaats reactie

Terug naar “Development”