Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Erilliset alidomainit ja URL-sääntöjä htaccessilla

Multibyte [30.03.2015 16:11:09]

#

Moi

Olen jäsentänyt eri sivustot jaetussa hostissa omiin alikansioihin.
Yksi WordPress saitti on omassa kansiossaan eli /public_htlm/wp. (A)
Yksi itsenäinen Drupal saitti /public_html/drupal7. (B)
Ja kolmas on kolmen sivun Drupal multisite /public_html/multisite. (C)

WordPressin tulisi pyöriä osoitteessa

domain1.tld/wordpress (Toimii)

Itsenäisen Drupal saitin tulisi pyöriä osoittessa

domain1.tld/drupal7 (Toimii)

Kolme multisiteen liittyvää sivustoa tulisi pyöriä osoitteissa

domain1.tld <- ensimmäinen sivusto multisiten osalta (multisite/sites/domain1.tld/)
domain2.tld <- toinen sivusto multisiten osalta (multisite/sites/domain2.tld/)
domain3.tld <- tämä on Drupali codebase/pääsivusto

Sen verran sain jo toimimaan, että kunkin sivun pääsivut aukeavat, mutta multisiten liittyvien sivustojen ns. alasivut eivät eli domain1.tld/testisivu päätyy "404 not found"(?q=testisivu toimii kylläkin eli siistityt URLt eivät ohjaudu oikein). Teemat toimivat ja sivustot näyttävät hyviltä, mutta alasivuja ei siis löydy siistityillä urleilla.

Nyt pitäisi selvittää, että liittyykö ongelma public_html/.htaccess tiedostossa tehtyyn konffiin vaiko multisite/.htaccess tiedostoon?

The Alchemist [30.03.2015 16:59:55]

#

No sehän riippuu täysin niiden htaccess-filujen sisällöstä. Niiden sijainnilla ei sinällään ole mitään väliä, vaan voisit yhtä hyvin laittaa kaikki htaccess-konffit suoraan Apachen yleiseen asetustiedostoon tai vhostin konffiin.

Multibyte [30.03.2015 18:53:58]

#

Ao. on sijoitettu public_html alle, jonka avulla kaikki muut sivustot toimivat, mutta tuo domain3.tld ei toimi siistittyjen URLien kanssa (404):

Options -Indexes
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?domain1.fi$
RewriteCond %{REQUEST_URI} ^/(wordpress)/ [NC] # Mätsätään omaan alikansioon
RewriteRule !^wordpress/ wordpress%{REQUEST_URI} [QSA,L]

RewriteCond %{HTTP_HOST} ^(www.)?domain1.fi$
RewriteCond %{REQUEST_URI} ^/(drupal7)/ [NC] # Mätsätään omaan alikansioon
RewriteRule !^drupal7/ drupal7%{REQUEST_URI} [QSA,L]

RewriteCond %{HTTP_HOST} ^(www.)?(domain3|domain2|domain1).fi$  # Mätsätään multisite sivustoille kuuluviin domaineihin
RewriteCond %{REQUEST_URI} !^/(drupal7|wordpress)/ [NC] #Tarkistetaan ettei pyydetä kumpaakaan em. itsenäisistä saiteista (oikeastaan turha tässä kohtaa)
RewriteRule ^(.*)$ multisite%{REQUEST_URI} [QSA,L] # Ohjataan alikansioon

The Alchemist [31.03.2015 08:25:05]

#

En jaksa kokeilla enkä osaa noita ehtoja täydellisesti, mutta näyttäisi vähän siltä, että "varmuuden vuoksi" laitettu "turha" ehto rikkoo päättelyn, koska and-liitoksella noista kahdesta viimeisestä RewriteCondista tulee false, kun ei pyydetä alihakemistoa drupal7/ tai wordpress/. Tyypillistä.

On paljon järkevämpää pakottaa käyttäjät aina www-alkuiseen osoitteeseen. Sillä saisi myös siistittyä noita regexejä.

Metabolix [31.03.2015 17:29:18]

#

The Alchemist, oletko kuullut negaatiosta eli tässä tapauksessa !-merkistä?

Itse en nyt ylipäänsä ymmärrä, miten ensimmäisessä viestissä kuvaillut osoitteet ja polut muka sopivat noihin ehtoihin. Esimerkiksi sites näyttää puuttuvan htaccessista kokonaan.

Multibyte [01.04.2015 15:45:17]

#

Noh, ao. konffilla se pelaa ainakin:

Options -Indexes
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?domain1.tld$ [NC]
RewriteCond %{REQUEST_URI} ^wordpress/(.*)$ [NC]
RewriteRule ^wordpress/ wordpress%{REQUEST_URI} [QSA,L,S=7]

RewriteCond %{HTTP_HOST} ^(www.)?domain1.tld\/drupal7$  [NC]
RewriteCond %{REQUEST_URI} ^drupal7/(.*)$ [NC]
RewriteRule ^drupal7/ drupal7%{REQUEST_URI} [QSA,L,S=3]

RewriteCond %{HTTP_HOST} ^(www.)?(domain3|domain2|domain1).tld$
RewriteRule ^(.*)$ multisite%{REQUEST_URI} [QSA,L]

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta