.htaccess rewrite 3 variable en een tweede site op de website hosten

Status
Niet open voor verdere reacties.

mcfreak

Gebruiker
Lid geworden
21 feb 2012
Berichten
508
hallo,

Ik ben nu bezig met een website, daar loop ik tegen twee problemen op:

1. dit is de makkelijkste, ik heb een website succesvol draaiende, nu heb ik een probleem.
ik wil een tweede site erop hosten, geen probleem, wat nieuwe mapjes (/domeinen/desite.nl) en klaar.
nu wil ik dat als je desite.nl in de url typt je in de index van die map komt en dus ook als je desite.nl/plaatje.jpg typt ook /domeinen/desite/plaatje.jpg ziet.
het is me gelukt, maar als ik desite.nl typ in de url, krijg ik te zien hoofdsite.nl/domeinen/desite.nl, hoe kan ik er voor zorgen dat je gewoon desite.nl ziet en het dus lijkt of hoofdsite.nl er niets mee te maken heeft?
(site namen veranderd natuurlijk)

2. dit moet voor beide sites, hoofdsite.nl en desite.nl dus.
ik wil dat als je hoofdsite.nl/dit/lukt/niet opzoekt, je hoofdsite.nl/index.php?pagina=dit&vartwee=lukt&vardrie=niet eigenlijk bezoekt, maar in de url gewoon hoofdsite.nl/dit/lukt/niet ziet.
ook moet, als je alleen hoofdsite.nl/dit/lukt opvraagt, hij eigenlijk dit vragen: hoofdsite.nl/index.php?pagina=dit&vartwee=lukt, hoe lukt dat?

ik ben beheerder van het netwerk dus kan alles veranderen.
ik snap het als je het vaag vind, ik ben hier niet echt bekent in, vraag gerust erop los!

-mcfreak
 
Meestal heb je helemaal geen .htaccess nodig, en los je het op met host headers (oftewel: Je webserver-software opent, gebaseerd op wat de bezoeker opgeeft, de juiste html/php file in de juiste).

In Apache/LAMP/WAMP wordt dat vhosts of VirtualHost genoemd, en kan dan ingesteld worden in het configuratiebestand van Apache (doorgaans httpd.conf, maar kan ook anders heten in jouw setup).
In IIS kun je het per website opgeven welke host headers erbij horen.

Tijs.
 
Ik gebruik usbwebserver, dat is apache met httpd.conf als configuratie-bestand, ik ga nu kijken
 
Hieronder een voorbeeld.

Ik zal een klein voorbeeld geven hier, waarbij de 2 domeinnamen zijn: mijndomein1.nl en mydomain2.com, de websites staan onder D:\www en ik voor de eerste website een submap 1 wil gebruiken en voor de tweede website submap 2.

<VirtualHost *:80>
ServerAdmin webmaster@mijndomein.nl
DocumentRoot "D:/www/1"
ServerName mijndomein1.nl
ServerAlias www.mijndomein1.nl
ErrorLog "logs/mijndomein.nl-error.log"
CustomLog "logs/mijndomein.nl-access.log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@mydomain2.com
DocumentRoot "D:/www/2"
ServerName mydomain2.com
ServerAlias www.mydomain2.com
ErrorLog "logs/mydomain2.com-error.log"
CustomLog "logs/mydomain2.com-access.log" common
</VirtualHost>

Natuurlijk bovenstaande aanpassen aan jouw situatie, maar je krijgt het idee hiermee hopelijk: Servername en Serveralias geven samen aan welke namen geldig zijn voor de website, DocumentRoot geeft aan waar de webpagina's staan voor die ene site etc.

Tijs.
 
het werkt niet, ik heb alles ingevuld, maar als ik via het 2de domein de server wil bereiken, krijg ik de root van de webserver te zien, niet de root van welke hij wel moet laten zien.
het lijkt me sterk omdat het er niets mee te maken heeft, maar het 2de domein is een (tijdelijk) .tk-domein, de eerste site is een .nl-domein.
ook heb ik opgemerkt dat de error en acess log niet is gegenereerd, dat klopt volgens mij niet
 
Laatst bewerkt:
Heb je apache wel herstart? Elke aanpassing van httpd.conf vereist een herstart van apache.

Verder: Denk je nu echt dat we met die terugmelding van jou concreet wat kunnen?
a. Zonder citaat van hoe het nu staat in httpd.conf kunnen we er niet veel mee.
b. Hoe heb je getest?
c. Wat de gevolgen zijn van zo'n .tk domein weet ik niet, maar het is niet helemaal hetzelfde als een volledig eigen domeinnaam (iets met redirecten/reclame/banners heb ik begrepen).
Wat je evt. zou kunnen doen is het tijdelijk omdraaien van de virtualhost ingangen (dus dat je met het .nl domein de .tk content bereikt op je website en andersom). Werkt dat wel, dan heeft het gebruik van .tk wel degelijk (negatieve) invloed.

Tijs.
 
ik wist eigenlijk niet meer, ik was nog wat aan het testen en wilde de info later bijwerken, maar apache wilt niet meer opstarten...
logs zijn verdwenen, ik moet nu wel en ben om 1 uur weer terug.
 
Als Apache niet meer opstart, dan heb je (99% zeker) een fout gemaakt in httpd.conf. Kan een typefout zijn, een verkeerd keyword etc.

Tijs.
 
ok, gefixt, geen idee wat er fout was.
veel dingen teruggezet naar default, apache deed het weer, maar site kon ik niet bereiken.
daarna deed mysql het niet meer en moet ik java.exe voor mijn minecraft-server killen :( (werkt op mysql)
daarna deden ze het allebij niet en heb een hele nieuwe versie gekopieerd, config goed zetten en hij deed het weer...
waar moet ik virtualhost eigenlijk configureren? httpd.conf toch (had ik gedaan)
zo weer proberen.
 
Opnieuw geprobeerd, doet niets en zeg niets in de log.
Geen flauw idee wat ik nog erbij moet vertellen
 
Ik vroeg al hoe jij test.
Heb je in het HOSTS bestand van je webserver een ingang gemaakt www.TKdomein.tk en www.NLdomein.nl die verwijst naar 127.0.0.1 ?? Anders kun je NIET testen vanaf diezelfde webserver.

Zie hier voor instructies omtrent hosts.

Tijs.
 
had ik niet gedaan, maar nu wel en hij doet het nog steeds niet
 
Je informatievoorziening is wel erg mager:
a. Heb je die VirtualHost entries nu wel staan in httpd.conf?
b. Wat zeggen de logging-bestanden?
c. Welke melding krijg je in je browser?

Tijs.
 
Op een rijtje:

A: al vanaf het begin, steeds opnieuw erin gezet
B:
de eerste heeft er wat mee te maken?
[Wed Apr 03 12:49:56 2013] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Wed Apr 03 12:49:57 2013] [notice] Apache/2.2.15 (Win32) PHP/5.2.13 configured -- resuming normal operations
[Wed Apr 03 12:49:57 2013] [notice] Server built: Mar 4 2010 11:27:46
[Wed Apr 03 12:49:57 2013] [notice] Parent: Created child process 4104
[Wed Apr 03 12:49:57 2013] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Wed Apr 03 12:49:58 2013] [warn] _default_ VirtualHost overlap on port 80, the first has precedence
[Wed Apr 03 12:49:58 2013] [notice] Child 4104: Child process is running
[Wed Apr 03 12:49:58 2013] [notice] Child 4104: Acquired the start mutex.
[Wed Apr 03 12:49:58 2013] [notice] Child 4104: Starting 64 worker threads.
[Wed Apr 03 12:49:58 2013] [notice] Child 4104: Starting thread to listen on port 80.
[Wed Apr 03 12:53:34 2013] [error] [client 145.120.116.73] File does not exist: ----, referer: ----
C: Hij geeft gewoon de index van de root aan.

nu wel opgemerkt dat de log-files van de 2de site zijn aangemaak, wel leeg
 
Laatst bewerkt:
Ik begrijp uit deze link (en ook uit deze link) dat er iets ontbreekt in je httpd.conf (dat er standaard wel in staat).
Kijk of vóór de VirtualHost secties er (ergens) staat (zónder #-tekens ervoor):
NameVirtualHost *:80

Als dat niet ergens staat (of pas ná de VirtualHost secties), die dan boven de VirtualHost secties invoegen, bestand opslaan en apache herstarten.

Tijs.
 
Laatst bewerkt:
Pak de huidige httpd.conf in in een .zip bestand, en doe die als bijlage bij je volgende posting.

Tijs.
 
Mij vallen een paar dingen op:
a. Je hebt mijn voorbeeld helemaal niet gevolgd, qua VirtualHost ingangen. Vooral direct al de <VirtualHost> ingang klopt niet, daar moet je gewoon van maken: <VirtualHost *:80> dus niet <domeinnaam *:80>
Als je denkt dingen anders te moeten doen dan ik aangaf, dan moet je wel nakijken 'hoe het hoort', niet zomaar wat gaan doen en dan op het forum melden dat het niet werkt.
Hetgeen achter <VirtualHost staat is namelijk op welk ip-adres van je server er geluisterd wordt voor verzoeken voor die virtualhost!
* betekent dat alle netwerkaansluitingen met een ip-adres op je server gebruikt mogen worden om verzoeken voor die virtualhost op te verwerken.
b. Verder moet je mapnamen (veiligheidshalve) altijd met "-tekens omsluiten én "/" tekens gebruiken ipv. "\" tekens dus in je eerste VirtualHost:
DocumentRoot "C:/webserver/root"
en in de tweede:
DocumentRoot "C:/webserver/root/domeinen/boekeendeejay.nl"

Tijs.
 
Laatst bewerkt:
ik snap nu niet meer welke httpd.conf de server gebruikt en welke ik heb opgestuurd (zijn er 2)
ga dat eerst maar uitvogelen
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan