Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

Et lille 301 www. til ikke www redirect script gratis til folket

Side 1 ud af 1 (7 indlæg)
  • 1
Fra København
Tilmeldt 30. May 06
Indlæg ialt: 992
Fra  Firmafon Skrevet kl. 00:07
Hvor mange stjerner giver du? :

Hej Amino folk!

I dag lavede jeg et lille bitte script (som mange andre også kan banke hurtigt sammen), men ville lige dele det med jer så i ikke skal til at banke det sammen igen:D

Scriptet går helt simpelt ud på at lave et redirect fra www.domæne.dk til domæne.com, altså fjerne www. (i næste version kommer man til selv at kunne vælge om man vil ændre fra domæne.dk til www.domæne.dk eller omvendt).

Scriptet er lavet så det kan smides på ens server en gang også genbruges til alle ens domæner.

I kan downloade scriptet her: http://github.com/stephenson/Global-301-to-non-www-redirect/

Håber i kan bruge det til noget! Lige pt køre det som demo her: http://www.stephenson.dk.

Fra København
Tilmeldt 30. May 06
Indlæg ialt: 992
Fra  Firmafon Skrevet kl. 11:26
Hvor mange stjerner giver du? :
Fra Holbæk
Tilmeldt 7. Apr 06
Indlæg ialt: 561
Skrevet kl. 12:26
Hvor mange stjerner giver du? :

Hej Niklas,

Jeg kan næsten regne ud du ikke har testet scriptet? :)

Du er nødt til at sætte nogle conditions ind for hvad din HTTP_HOST allerede indeholder, ellers får du nogle forfærdelige uendelige loops.

I øvrigt er det en god ide at smide en exit ind efter en location header, så du er sikker på der ikke eksekveres mere af dit script.

God fornøjelse med det!

Mvh. Jakob

Fra Holbæk
Tilmeldt 7. Apr 06
Indlæg ialt: 561
Skrevet kl. 12:28
Hvor mange stjerner giver du? :

I øvrigt tror jeg din $_GET['file'] skulle have været $_SERVER['REQUEST_URI'] ?

Begyndende slash er også inkluderet i den global, så det kan du ligeledes godt fjerne for at undgå dobbelt.

Fra København
Tilmeldt 30. May 06
Indlæg ialt: 992
Fra  Firmafon Skrevet kl. 12:31
Hvor mange stjerner giver du? :

Jakob Søndergård:

Hej Niklas,

Jeg kan næsten regne ud du ikke har testet scriptet? :)

Du er nødt til at sætte nogle conditions ind for hvad din HTTP_HOST allerede indeholder, ellers får du nogle forfærdelige uendelige loops.

I øvrigt er det en god ide at smide en exit ind efter en location header, så du er sikker på der ikke eksekveres mere af dit script.

God fornøjelse med det!

Mvh. Jakob

Hej Jakob

Jo jeg har testet scriptet og til mit behov virker det helt fint.

Det fine ved at gøre sådan noget her open source er at folk kan tage og bruge det som det er eller redigere i det så det passer til deres behov. Også bl.a. derfor det ligger på github, så kan du bare lave en fork af det hvis du vil.

Jeg kan ikke se hvorfor det skulle give et loop, ideen er at fx domæne.dk peger på en undermappe på serveren hvor selve hjemmesiden ligger og www.domæne.dk peger på en anden undermappe hvor mit script ligger.

Har på ingen måde sagt at det er 100% fuldkomment eller noget, det var bare lige det jeg havde brug for igår og hvis der var andre der stod med det samme behov kunne de ligeså godt tage noget der allerede er lavet.

Fra Holbæk
Tilmeldt 7. Apr 06
Indlæg ialt: 561
Skrevet kl. 12:39
Hvor mange stjerner giver du? :

Hej igen Niklas,

Nu havde jeg i første omgang ikke set at du også brugte en htaccess-fil udover din PHP-snip. Men det ændrer desværre ikke på det jeg skrev.

Det er slet ikke for at være efter dig, men koden er altså fyldt med fejl. Du tjekker i øvrigt heller ikke om $use_www er 0, du sætter den til 0 - i dit if-statement. Dvs. det altid vil defaulte til else-blokken.

Hvis jeg går ind på www.ditdomain.dk med den kode, bliver jeg redirected til www.www.ditdomain.dk. Og hvis jeg gik ind på jegelskerwww.dk og røg i første blok, ville jeg blive redirected til jegelsker.dk.

Fra Holbæk
Tilmeldt 7. Apr 06
Indlæg ialt: 561
Skrevet kl. 12:48
Hvor mange stjerner giver du? :

Du skal over i noget i den her stil: (uden at skulle bruge .htaccess)

<?php

$use_www = 0;
$is_www = (int) substr($_SERVER['HTTP_HOST'], 0, 4) == 'www.';

if($use_www != $is_www) {
  header("HTTP/1.1 301 Moved Permanently");
  header("Location: http://" . ($use_www ? "www." . $_SERVER['HTTP_HOST'] : substr($_SERVER['HTTP_HOST'], 4)) . $_SERVER['REQUEST_URI']);
  exit;
}

?>

Side 1 ud af 1 (7 indlæg)