Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: URLit siistimpään muotoon (.php-pääte pois)

Sivun loppuun

Haippi [27.11.2013 19:35:17]

#

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.

Lebe80 [27.11.2013 20:57:58]

#

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.

p99o [27.11.2013 21:03:20]

#

Ja sitten muista että CSS-tiedostojen polut pitää kirjoittaa juuresta asti (vai miten sen sanoisi).

Lebe80 [27.11.2013 22:05:37]

#

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.

p99o [27.11.2013 22:12:27]

#

jaa a... itse olen aina joutunut vaihtamaan jos tilanne on vaatinut
"styles.css" ==> "/styles.css" jne...

Haippi [28.11.2013 13:53:15]

#

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?

Teuro [28.11.2013 14:46:42]

#

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ö.

Haippi [28.11.2013 16:11:07]

#

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ä?

Metabolix [28.11.2013 17:01:20]

#

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.

The Alchemist [28.11.2013 17:41:17]

#

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ä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta