Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: .htaccess RewriteRule apua

Meitzi [12.04.2010 11:07:06]

#

Meinaa ottaa jo vähän hermoon, mutta monien tekijäiden summana minulla on yksi sivusto, johon ohjataan 3 eri domainia. Nämä 3 eri domainia ovat eri kieliversioita.

Eli oletetaan esim että www.domain.fi www.domain.de www.domain.se
Silläntuotanto on toteutettu niin, että jokaiselle kieliversiolla on oma koodinsa. Eli www.domain.fi on suoraan sivuston juuressa, www.domain.de on DE/ kansiossa.

Nyt .htaccess viritys näyttää tältä:

# Tässä muutetaan URLit alikansioihin domainin mukaan
RewriteCond %{HTTP_HOST} .*domain\.se
RewriteCond %{REQUEST_URI} !^/SE
RewriteRule ^(.*)$ SE/$1

RewriteCond %{HTTP_HOST} .*domain\.de
RewriteCond %{REQUEST_URI} !^/DE
RewriteRule ^(.*)$ DE/$1

# Tarkistetaan onko tiedosto olemassa, jos ei, siirretään URL sisällönhallintaan
# Eli URL pitää olla tässävaiheessa viitata todelliseen hakmistoon
RewriteCond %{HTTP_HOST} .*domain\.de
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ DE/index.php?q=$1 [PT,NC,QSA]

RewriteCond %{HTTP_HOST} .*domain\.se
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ SE/index.php?q=$1 [PT,NC,QSA]

RewriteCond %{HTTP_HOST} .*domain\.fi
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [PT,NC,QSA]

Tämä toimii lähes oikein, mutta esim www.domain.se/etusivu2 muuttuu ilmeisesti muotoon www.domain.se/SE/index.php?q=SE/etusivu2 vaikka haluaisin www.domain.se/SE/index.php?q=etusivu2

Yritin jo tehdä vielä lisäsääntöä joka poistaa tuon ylimääräisen osan, mutta en ilmeisesti osannut. Voisiko tämän tehdä jotenkin helpommin? Ei vain sytytä. Varsinkin, kun teen tuota .htaccessia ensimmäistä kertaa.

EDIT:

Sainpas sittenkin toimimaan

RewriteCond %{HTTP_HOST} .*domain\.de
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^DE(.*)$ DE/index.php?q=$1 [PT,NC,QSA]

Enpä tiedä onko oikea ratkaisu, mutta toimii eikä kukaan koskaa näe.

Meitzi [12.04.2010 15:30:19]

#

Ja vielä ku pisti joka sääntön [L] niin tuntuu toimivan jopa järkevästi. Toivottavasti ei tarvitse enää ikinä tutustua Apache dokumentteihin.

Vastaus

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

Tietoa sivustosta