Redirect via .htaccess
Ik ben bezig met een website te maken.
Ik ben ik redelijk ver.
Maar ik wil graag nog de puntjes op die I zetten.
En een puntje daarvan is Redirecten.
Ik heb al heel veel op google gezocht maar bij mij werkt het niet.
Dit staat er in mijn .htacces:
RewriteEngine On
Redirect /index.php?p=Home http://td-ict.nl/Home
Redirect /index.php?p=Over%20mij http://td-ict.nl/Over%20mij
Redirect /index.php?p=Websites http://td-ict.nl/Websites
Redirect /index.php?p=Webshops http://td-ict.nl/Webshops
Redirect /index.php?p=Social%20Media http://td-ict.nl/Social%20Media
Redirect /index.php?p=Marketing http://td-ict.nl/Marketing
Redirect /index.php?p=Computerhulp http://td-ict.nl/Computerhulp
Redirect /index.php?p=Portfolio http://td-ict.nl/Portfolio
Redirect /index.php?p=Contact http://td-ict.nl/Contact
Ik heb ook al verschillende generatoren gebruikt maar het wil niks helpen.
Wat doe ik fout?
Met vriendelijke groet,
Tim Dielemans.
Voor een redirect ben je alleen de 301 vergeten toe te voegen. Bovendien heb je hiervoor de RewriteEngine niet nodig.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Redirect 301 /index.php?p=Home http://td-ict.nl/Home
Redirect 301 /index.php?p=Over%20mij http://td-ict.nl/Over%20mij
Redirect 301 /index.php?p=Websites http://td-ict.nl/Websites
Redirect 301 /index.php?p=Webshops http://td-ict.nl/Webshops
Redirect 301 /index.php?p=Social%20Media http://td-ict.nl/Social%20Media
Redirect 301 /index.php?p=Marketing http://td-ict.nl/Marketing
Redirect 301 /index.php?p=Computerhulp http://td-ict.nl/Computerhulp
Redirect 301 /index.php?p=Portfolio http://td-ict.nl/Portfolio
Redirect 301 /index.php?p=Contact http://td-ict.nl/Contact
Redirect 301 /index.php?p=Over%20mij http://td-ict.nl/Over%20mij
Redirect 301 /index.php?p=Websites http://td-ict.nl/Websites
Redirect 301 /index.php?p=Webshops http://td-ict.nl/Webshops
Redirect 301 /index.php?p=Social%20Media http://td-ict.nl/Social%20Media
Redirect 301 /index.php?p=Marketing http://td-ict.nl/Marketing
Redirect 301 /index.php?p=Computerhulp http://td-ict.nl/Computerhulp
Redirect 301 /index.php?p=Portfolio http://td-ict.nl/Portfolio
Redirect 301 /index.php?p=Contact http://td-ict.nl/Contact
Ik heb hem in me .htaccess gezet maar het werkt niet.
Ik krijg nog steeds de oude linken.
Gewijzigd op 17/11/2013 17:11:50 door Tim Dielemans
Webserver stoppen en herstarten.
Ik ben bij Antagonist.
Redirect ^Home/?$ /index.php?p=Home [NC,L] is waarschijnlijk wat je wilt.
Als je dan naar http://td-ict.nl/Home gaat wordt je intern doorverwezen naar http://td-ict.nl/index.php?p=Home
Dus als je dan op een menu knop klik die linkt naar index.php?p=Home dan veranderd hij het naar td-ict.nl/Home?
Tim Dielemans op 17/11/2013 20:42:11:
Dus als je dan op een menu knop klik die linkt naar index.php?p=Home dan veranderd hij het naar td-ict.nl/Home?
Nee.
Leg a.u.b. beter uit wat je als resultaat wilt.
Wat wil je als url in de adresbalk hebben? En wat is de bijbehorende non-seo url?
Of verwacht je dat als je die regels toevoegt automatische alle non-seo urls in de html vervangen worden door de seo urls?
Of nog iets anders?
Gewijzigd op 17/11/2013 23:01:17 door Dos Moonen
http://td-ict.nl/index.php?p=Home ga moet in de balk http://td-ict.nl/Home komen staan.
Als ik naar Je moet alleen de hyperlinks aanpassen.
Dus domain.tld/iets/.
Dat gebeurt niet automatisch. ;)
Tim Dielemans op 18/11/2013 06:26:21:
Als ik naar http://td-ict.nl/index.php?p=Home ga moet in de balk http://td-ict.nl/Home komen staan.
Normaal gesproken is het zo dat je via mod_rewrite een mooie gebruiksvriendelijke url toevoegt en deze onzichtbaar voor de eind gebruiker (intern) doorverwijst naar de oude 'lelijke' url.
RewriteRule ^Home/?$ /index.php?p=Home [NC,L]
Die regel zorgt er voor dat als iemand naar http://td-ict.nl/Home of http://td-ict.nl/Home/ gaat hij/zij intern doorverwezen wordt naar http://td-ict.nl/index.php?p=Home.
Hij/zij kan nog steeds zelf naar http://td-ict.nl/index.php?p=Home gaan, en het zal werken.
Als dit je gewenste resultaat is had je het beter zo kunnen beschrijven: Als er http://td-ict.nl/Home in de adresbalk komt te staan wil ik dat http://td-ict.nl/index.php?p=Home uitgevoerd wordt zonder te redirecten.
Dit is in bijna alle gevallen goed genoeg.
Als jij om weet ik veel wat voor vreemde reden wilt dat als mensen zelf naar http://td-ict.nl/index.php?p=Home gaan ze geredirect worden naar http://td-ict.nl/Home maar nog steeds http://td-ict.nl/index.php?p=Home uitgevoerd wordt. Dan ga je een heel onoverzichtelijke .htaccess (en mogelijk index.php) krijgen. Als het al kan.
Gewijzigd op 18/11/2013 15:19:50 door Dos Moonen
Ik ga het vanmiddag testen.
Even nog voor mezelf:
Ik heb in mijn website een menu.
Als je daar bijvoorbeeld op Contact klikt, ga je naar index.php?p=Contact.
En dan wil ik dat dan de url wordt weergegeven als http:// td-ict.nl/Contact.
En dan wil ik dat dan de url wordt weergegeven als http:// td-ict.nl/Contact.
Dat is de verkeerder gedachte.
Je moet linken naar http:// td-ict.nl/Contact. "Onderwater" stuur je dit verzoek dan door naar index.php?p=Contact.
Als je linkt naar Y krijg je dus Y in de adresbalk en wordt Y uitgevoerd.
ALs je linkt naar X krijg je dus X in de adresbalk en wordt Y uitgevoerd.
X is bijvoorbeeld http://td-ict.nl/Contact, Y zal dan http://td-ict.nl/index.php?p=Contact zijn.
Zolang je het op de verkeerde manier probeert te benaderen zal het erg lastig gaan.
Hoe komt mijn htaccess er dan uit te zien?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
RewriteEngine On
RewriteBase /
RewriteRule ^Home/?$ /index.php?p=Home [NC,L]
...
RewriteRule ^Contact/?$ /index.php?p=Contact [NC,L]
RewriteBase /
RewriteRule ^Home/?$ /index.php?p=Home [NC,L]
...
RewriteRule ^Contact/?$ /index.php?p=Contact [NC,L]
Gewijzigd op 18/11/2013 15:20:36 door Dos Moonen
Moet ik dan nog iets veranderen aan mijn dns ofzo?
Zorg dat AllowOverride voor de virtualhost/map in je apache config op All staan, anders wordt je .htaccess niet uitgevoerd.
Een simpele manier om te testen of je .htaccess actief is kan door er even wat onzin in te zetten en kijken of je nu alleen nog maar 500 internal server errors krijg voorgeschoteld. 'hqd89f$*' aan het eind van je .htaccess is bijvoorbeel onzin.
Edit:
[NC] geeft trouwens aan dat het niet hoofdletter gevoelig moet zijn. /home en /Home werken dus beide.
[L] betekend dat als deze rule uitgevoerd wordt, dit de laatste zal zijn. De rest wordt dan geskipt.
Meerdere flags kunnen tegelijkertijd actief zijn. Je kunt ze scheiden met een komma. [L,NC] en [NC,L] komt dus op het zelfde neer.
Gewijzigd op 18/11/2013 15:44:34 door Dos Moonen
Hartelijk bedankt ik moet dus uw bovenstaand script in m'n htaccess zetten en dan AllowOverride all erbij en dan moet het werken.
AllowOverride in je .htaccess plaatsen is btw zinloos. Ik weet niet zeker of je dat bedoelde. Je zult het hoger op in de configuratie op All moeten zetten. ALS jij er tenminste rechten voor hebt.
Maar waarschijnlijk staat het al goed. Zo niet, dan kom je dat hier melden.