Avatar billede zombien Juniormester
07. oktober 2014 - 10:29 Der er 3 kommentarer og
1 løsning

301 Redirect med .htaccess og php

Hej Eksperter :)

Håber der er nogle morgenfriske kloge hoveder herinde idag, jeg sidder netop er igang med at skal til at sætte 301 redirects op eftersom jeg har skiftet fra joomla til wordpress...

og der har jeg en masse links som lyder følgende

/minprofil/bla-bla-bla-bla1/
/minprofil/bla-bla-bla-bla2/
/minprofil/bla-bla-bla-bla3/
/minprofil/bla-bla-bla-bla4/
/minprofil/bla-bla-bla-bla5/

Der vil jeg jo gerne have har linket /minprofil/ i sig skal den redirect tilbage til forsiden og det samme med alle undersiderne altså /bla-bla-bla-bla1/ osv.

Har prøvet dette i min .htaccess fil
Redirect 301 /minprofil/ http://www.mitdomæne.dk/

men besøger jeg følgende side /minprofil/bla-bla-bla-bla1/ bliver den redirected til /bla-bla-bla-bla1/ og fremprovokere en 404 fejl i stedet :S

så er der ikke en måde at fange /minprofil/ og alle undersiderne herefter og få dem til at pege på forsiden uden at skulle indtaste hver eneste link?


En tanke
Kan man oprette mappen minprofil fysisk på serveren, smide en index.php fil derind, få .htaccess til at sende alt trafik til index.php filen og fortage en php redirect i stedet?
Avatar billede zombien Juniormester
07. oktober 2014 - 13:47 #1
Har siddet og leget lidt mere med dette problem og er desværre ikke kommet ret meget tættere på et svar for hvordan jeg få alle under mapper/links osv. med

lige p.t. ser min .htaccess kode sådan her ud


RewriteEngine on
RewriteBase /
#Options -Indexes

# Redirect all request for files/folders in root that dosn't exist, to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?rewritten_url=$1 [QSA,L]


Den ligger i en undermappe der hedder test sammen med en index.php fil og hvis jeg skriver mitdomæne.dk/test/ så redirecter den korrekt til mitdomæne.dk

men skriver jeg eks. mitdomæne.dk/test/retry/ så henter den korrekt indholdet ind fra mitdomæne.dk men adresselinjen indeholder /test/retry/ hvordan får jeg dette her væk?

min index.php ser sådan her ud, den er jo nok mest vigtig da det er den som fortager redirecten :)


<?php

function Redirect( $url, $statusCode = 301 ) {
    header('Location: ' . $url, true, $statusCode);
    exit();
}

Redirect('http://www.example.com/', true);

?>


håber nogle herinde kan hjælpe
Avatar billede moddi100 Seniormester
07. oktober 2014 - 14:42 #2
Prøv følgende:
RewriteRule ^/minprofil/ http://www.url.dk [R=301,L]
Avatar billede zombien Juniormester
07. oktober 2014 - 14:53 #3
Den fungere ganske udmærket hvis det bare er /test/

men kommer der /test/test/ så fungere den ikke og laver bare en 404
da den ikke fjerner adressen oppe i adresselinjen
Avatar billede zombien Juniormester
07. oktober 2014 - 15:19 #4
Har selv fundet svaret på mit problem

Følgende er det fungerende script

RedirectMatch 301 ^/test/.*$ http://www.mitdomæne.dk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester