Eli tarkoituksena olisi saada sivuston urlit siistimpään muotoon.
Esimerkki: www.domain.com/kuvagalleria.php -> www.domain.com/kuvagalleria
Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / ## hide .php extension # To externally redirect /dir/foo.php to /dir/foo RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R=302,L] # To internally forward /dir/foo to /dir/foo.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ $1.php [L]
Netistä löysin tälläisen koodin .htacces -tiedostoon ja asiasta mitään tietämättömänä en sitä saanut toimimaan. Myös monia muita samankaltaisia koodeja löytyi, mutta niistä mikään ei suostu toimimaan.
Eli mikä mättää? Pitääkö asetuksia muuttaa jostain muualta? Myös tiedosto nimeltä httpd.conf tuli esiin, mutta sellaista mistään palvelimelta ei löytynyt.
Onko muita keinoja saada tiedostopäätteet piiloon? Sivuston kansiorakennetta en haluaisia lähteä muuttamaan, jolloin jokaiseen kansioon voisi sijoittaa oman index-tiedostonsa.
Siis ettei nyt puurot ja vellit ole menneet sekaisin, niin tuohan ei automaattisesti poista niistä sun linkeistäsi sitä php-päätettä, vaan ne sun pitää itse poistaa ja tuo ainoastaan korkeintaan ohjaa ilman php-päätettä olevat linkit sinne "oikeaan osoitteeseen".
Eli testaa kirjoittamalle osoite riville tuo "www.domain.com/kuvagalleria" ja katso mitä tapahtuu.
Ja sitten muista että CSS-tiedostojen polut pitää kirjoittaa juuresta asti (vai miten sen sanoisi).
p99o kirjoitti:
Ja sitten muista että CSS-tiedostojen polut pitää kirjoittaa juuresta asti (vai miten sen sanoisi).
No ei kyl tarvitse. Css-tiedostot lähtökohtaisesti toimivat kuten ennenkin.
jaa a... itse olen aina joutunut vaihtamaan jos tilanne on vaatinut
"styles.css" ==> "/styles.css" jne...
Lebe80 kirjoitti:
Eli testaa kirjoittamalle osoite riville tuo "www.domain.com/kuvagalleria" ja katso mitä tapahtuu.
Niin tässähän tulee 404 error sivu esiin.
Ja siis tiedän että ei poista niitä oikeasti vaan pitäisi näyttää sivu vain tuossa muodossa.
Voiko palvelun tarjoaja rajoittaa .htacces juttuja vai missä tässä nyt mennään mönkään?
No ensimmäisenä kannattaa tehdä varmasti toimiva rewrite-sääntö, jota kokeillaan jollakin sivulla. Mahdolliset virheilmoitukset kannattaa päivittää tähän lankaan, jotta mahdollinen apu olisi helppo kohdentaa ongelmaan.
Liitä myös käyttämäsi osoite, sekä käyttämäsi rewrite-sääntö.
Sain ongelman ratkeamaan ja se toimi juurikin tuolla alussa olevalla .htaccess koodilla... Kiitoksia paljon avusta!
Vielä sellainen kysymys hakukoneoptimointiin liittyen, että tunnistaako hakukoneet nyt jotenkin paremmin sivujen rakenteen? Vai miksi nämä sivustorakenteet ilman tiedostopäätteitä ovat niin yleisiä?
Tiedostopäätteen poistamisella ei ole mitään välitöntä arvoa. Joku ehkä voi perustella asiaa sillä, että esimerkiksi jos joskus vaihtaakin ohjelmointikieltä, ei tarvitse vaihtaa kaikkia sivuston osoitteita.
Olennaisempaa (tosin mielestäni silti melko epäolennaista) on sisällyttää osoitteeseen jotain merkityksellistä tietoa: esimerkiksi tällä sivulla käytetään osoitteen /keskustelu/aihe.php?id=27720&sivu=1 sijaan osoitetta /keskustelu/27720-aiheen-otsikko/sivu-1.
p99o kirjoitti:
jaa a... itse olen aina joutunut vaihtamaan jos tilanne on vaatinut
"styles.css" ==> "/styles.css" jne...
Tämä ei liity päätteen poistamiseen mitenkään. Sen sijaan jos osoitteeseen tulee lisää /-merkkejä, tietenkin pitää muuttaa muiden tiedostojen polkuja vastaavasti. Jos osoiterivillä lukee a/b/c/d, selain etsii styles.css:ää loogisesti sijainnista a/b/c/styles.css, koska eihän selain voi mistään tietää, että palvelimella tehdään jotain kummallista. Ylipäänsä pitää ymmärtää, että .htaccess-tiedosto on puhtaasti palvelimen sisäinen asia; selain tietää vain sen, mitä erityisesti selaimelle kerrotaan.
Omasta mielestäni koodi on paskaa, jos järjestelmän polut on kovakoodattu kiinni tiedostojärjestelmään. Käytetyllä kielellä ei ole mitään tekemistä sen kanssa, millaiset osoitteet/polut sivuilla ja toiminnoilla pitäisi olla. Omissa viritelmissäni kaikki polut ovat aina vaihdettavissa lennosta yhdestä asetustiedostosta.
Kannattaa myös miettiä sitä, onko mitään järkeä lähteä purkkaamaan reititystä .htaccessiin vai olisiko parempi tehdä se php:llä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.