Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Nettisivun uudelleenohjaus?

Sivun loppuun

Mike74 [14.08.2016 10:16:01]

#

Miten saisin ohjattua nettisivun kävijät alikansiosta hakemiston juureen?

Esim. www.omadomain.com/testi --> www.omadomain.com

Google on indeksoinut hyvin aiemmat sivut ja näiltä sivuilta pitäisi saada kävijät uudelle sivulle.

Htaccess-koodilla vai miten? Kyseessä on Wordpress-sivusto

HTML5 [14.08.2016 18:08:03]

#

Tämä .htaccess-koodi ohjaa koko hakemiston, tiedostoineen ja alihakemistoineen:

Redirect 301 /testi/ /

Esimerkkejä:

/testi/         →  /
/testi/foo      →  /foo
/testi/bar/baz  →  /bar/baz

Mike74 [14.08.2016 20:45:16]

#

Laitoin koodin htaccess-tiedostoon juurihakemistoon.
Seurasi seuraavaa:

Alkukepäinen: omadomain.com/testi/product_details.php?p=3

---> seuraa omadomain.com/product_details.php?p=3

Alikansio (testi) siis poistuu välistä ja uudelleenohjaus ei toimi.

Mikähän menee pieleen?

HTML5 [14.08.2016 21:37:03]

#

Mike74 kirjoitti:

Laitoin koodin htaccess-tiedostoon juurihakemistoon.
Alikansio (testi) siis poistuu välistä ja uudelleenohjaus ei toimi.

Miten uudelleenohjaus ei toimi? Kerro tarkemmin, mitä yrität tehdä.

Metabolix [14.08.2016 22:02:27]

#

Mike74 kirjoitti:

Alikansio (testi) siis poistuu välistä ja uudelleenohjaus ei toimi.

Kuulostaa ristiriitaiselta. Jos "testi/" poistuu välistä, eikö silloin uudellenohjaus nimenomaan ole toiminut oikein?

Mike74 [14.08.2016 22:26:43]

#

Pitäisi saada mikä tahansa alikansion tiedosto kääntymään juurihakemistoon.
Uudella sivulla ei ole esim product_details.php -nimistä tiedostoa.
Google on indeksoinut esim product_details?c=1.php tai product_catalog -tiedostoja. Nämä pitäisi saada kääntymään myös juurihakemistoon.

dartvaneri [15.08.2016 08:07:06]

#

Jos et halua, että Google indeksoi nuo, voit ne estää robots.txt tiedostolla.

Tahdotko siis saada jompaa kumpaa seuraavista?
1. omadomain.com/testi/product_details.php?p=3 ohjautuu kohteeseen omadomain.com
2. omadomain.com/testi/product_details.php?p=3 näytää URLina omadomain.com/product_details.php?p=3 mutta hakee tiedot kuitenkin alkuperäisestä URLista

Mike74 [15.08.2016 08:36:02]

#

Haluaisin kohdan 1. mukaisen ratkaisun


1. omadomain.com/testi/product_details.php?p=3 ohjautuu kohteeseen omadomain.com
Tämä pitäisi tapahtua kaikkien alikansion "testi" tiedostojen osalta, joita google on indeksoinut

Multibyte [15.08.2016 14:09:45]

#

Eikös tämä ole ihan RewriteBase määrityksellä hanskattavissa?
Pitäisi löytyä oletuksena WPn htaccessista, arvolla /.

HTML5 [15.08.2016 17:32:43]

#

Tämän pitäisi toimia:

RewriteEngine On
RewriteRule ^testi/? / [R=301]

Metabolix [15.08.2016 17:37:34]

#

Ratkaisuun käy RewriteRule (kuten HTML5 yllä kertoo). Jos vielä halutaan pudottaa query string eli ?:n jälkeinen osa pois, pitää laittaa kohteeksi ”/?”. Lisäksi L-määre on yleensä paikallaan, jotta uudelleenkirjoitussääntöjen käsittely päättyy.

RewriteEngine On
RewriteRule ^testi/ /? [L,R=301]

HTML5 [15.08.2016 17:42:01]

#

Koodissani on muuten kysymysmerkki, jotta palvelin tekee vain yhden uudelleenohjauksen vinoviivattomasta osoitteesta /testi. Muuten palvelin ohjaa ensin osoitteeseen /testi/ ja vasta sitten säännön mukaan osoitteeseen /.

Suosittelen käyttämään Matabolixin ratkaisua ja lisäämään lähdeosan loppuun kysymysmerkin.

Metabolix [15.08.2016 17:49:57]

#

HTML5 kirjoitti:

Koodissani on muuten kysymysmerkki, jotta palvelin tekee vain yhden uudelleenohjauksen vinoviivattomasta osoitteesta /testi. Muuten palvelin ohjaa ensin osoitteeseen /testi/ ja vasta sitten säännön mukaan osoitteeseen /.

Jos noin tapahtuu, selvästi koodissasi on muu virhe. Kyllä ohjaus menee suoraan sinne, mihin käsketään.

Lähdeosan lopussa olevan kysymysmerkin vaikutus on, että myös muut testi-alkuiset polut ohjautuvat, mm. siis /testi, /testi2 ja /testimuu. Omassa versiossani taas vain /testi/ ja sitä alemmat ohjautuvat.

Eli en suosittele ylimääräistä kysymysmerkkiä lähdeosassa, jos ei ole tarkoitus ohjata muita testi-alkuisia hakemistoja.

HTML5 [15.08.2016 19:02:16]

#

Metabolix kirjoitti:

Jos noin tapahtuu, selvästi koodissasi on muu virhe. Kyllä ohjaus menee suoraan sinne, mihin käsketään.

Jos palvelimella on juuressa hakemisto testi, niin osoite /testi ohjautuu osoitteeseen /testi/, joka taas ohjautuu osoitteeseen /. Jos taas hakemistoa ei ole, osoite /testi ei toimi.

Tarkoituksenani oli, että osoite /testi ohjautuu molemmissa tapauksissa suoraan osoitteeseen /.

Metabolix kirjoitti:

Lähdeosan lopussa olevan kysymysmerkin vaikutus on, että myös muut testi-alkuiset polut ohjautuvat

Enpä tullut tuota ajatelleeksi. Lausekkeen olisi pitänyt olla ^testi(/|$)

RewriteEngine On
RewriteRule ^testi(/|$) /? [R=301,L]

Metabolix [15.08.2016 19:15:01]

#

HTML5 kirjoitti:

Jos palvelimella on juuressa hakemisto testi, niin osoite /testi ohjautuu osoitteeseen /testi/, joka taas ohjautuu osoitteeseen /.

Ahaa, jotenkin ajattelin sinun tarkoittaneen, että kaikki osoitteet (kuten esimerkkinä annettu /testi/product_details.php?p=3) ohjautuisivat ensin osoitteeseen /testi/, mitä ei tietenkään tapahdu. Tietenkin pelkkä /testi toimii, kuten sanoit. Arvelen kuitenkin, että nimenomaisesti osoitteella /testi ei ole tässä kysymyksessä merkitystä, koska sitä tuskin on Googlekaan indeksoinut.

HTML5 [15.08.2016 19:40:59]

#

Metabolix kirjoitti:

Arvelen kuitenkin, että nimenomaisesti osoitteella /testi ei ole tässä kysymyksessä merkitystä, koska sitä tuskin on Googlekaan indeksoinut.

Ei varmaan olekaan. Yleensä osoitteet toimivat samalla tavalla, päättyvätpä ne vinoviivaan tai eivät.

Saatetaan myös haluta, ettei kirjainkoolla ole merkitystä, jolloin käytetään NC-lippua.

Mike74 [15.08.2016 20:12:06]

#

Suuret kiitokset kaikille asiaa ratkonielle. Homma ratkaistu!


Sivun alkuun

Vastaus

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

Tietoa sivustosta