Page 1 of 1

[SOLVED] Verhuizen

Posted: Fri Feb 08, 2013 9:00 pm
by brentnl
Ik weet dat heel internet er vol mee staat, maar toch kan ik niet de bevestiging vinden die ik zoek. Ben op zoek naar de juiste manier om een complete website te verhuizen. En dan vooral het aspect van redirecten middels .htacccess.

Ik beheer een redelijk populaire website met een goede pagerank in Google, vandaar mijn zorg. Als de website niet zo populair was geweest had het me niet uitgemaakt en kwam de verhuizing van zelf goed, maar in dit geval moet de pagerank 100% in tact blijven.

Huidige situatie:
http://www.ouddomein.nl

Code: Select all

#Options +FollowSymLinks
  RewriteEngine on
  RewriteBase /

# Link to http://website.com then redirect to http://www.website.com
RewriteCond %{HTTP_HOST} ^ouddomein\.nl [NC]
RewriteRule ^(.*)$ http://www.ouddomein.nl/$1 [L,R=301] 

  # 301 Redirect all requests that don't contain a dot or trailing slash to
  # include a trailing slash
  # except for form POSTS
  RewriteCond %{REQUEST_URI} !/$
  RewriteCond %{REQUEST_URI} !\.
  RewriteCond %{REQUEST_METHOD} !POST$
  RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
 
  # Rewrites urls in the form of /parent/child/
  # but only rewrites if the requested URL is not a file or directory
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.+)$ index.php?pagina=$1 [QSA] 
Nieuwe situatie:
http://www.nieuwdomein.nl

De site wordt 1 op 1 gekopieerd, dus alle links blijven hetzelfde. Problemen die ik echter zie zijn;
1. ik heb al een .htaccess op het oude domein, welke nodig is voor cmsms pretty urls
2. het huidige htaccess bestand modrewrite url's zonder 'www' al naar een variant mét 'www'
3. hoe kan ik alle aanvragen dynamisch opvangen, zonder voor iedere pagina een aparte htaccess regel te schrijven.

Ik wil dat de nieuwe site ook 'www'. als voorkeurs domein heeft.

Re: Verhuizen

Posted: Sat Feb 09, 2013 5:40 pm
by velden
Ik zou bijna zeggen in dit geval

Code: Select all

RewriteCond %{HTTP_HOST} ^(www\.)?ouddomein\.nl [NC]
RewriteRule ^(.*)$ http://www.nieuwdomein.nl/$1 [L,R=301] 
Ben geen expert hierin dus even testen kan nuttig zijn.

Re: Verhuizen

Posted: Sun Feb 10, 2013 2:34 pm
by brentnl
Als ik deze test pagina mag geloven zit je helemaal goed!
Super, bedankt.

EDIT: heb ik nog één klein probleempje. Op het oude domein, ben ik bezig met een nieuwe website bouwen, deze staat in een sub-dir (www.oudomein.nl/nieuw).
Echter met deze htaccess worden alle requests doorgestuurd en kan ik die URL dus niet benaderen. Welke regel moet ik toevoegen om voor één map een uitzondering te maken ?

Re: Verhuizen

Posted: Sun Feb 10, 2013 4:29 pm
by velden
http://www.webmasterworld.com/forum92/2455.htm

Denk dat daar je antwoord staat.

Re: Verhuizen

Posted: Sun Feb 10, 2013 5:00 pm
by brentnl
Thanks!

Ik heb het nu werkend denk ik, althans, de htaccess tester zegt dat het nu in orde is. Kan het pas checken als ik morgen/overmorgen daadwerkelijk alles over ga zetten.

Code: Select all

RewriteRule ^(corporate) corporate [L]

RewriteCond %{HTTP_HOST} ^(www\.)?ouddomein\.nl [NC]
RewriteRule ^(.*)$ http://www.nieuwdomein.nl/$1 [L,R=301] 
In het voorbeeld op het forum stond die regel iets anders:

Code: Select all

RewriteRule ^(imagedir¦imagedir2¦imagedir3) - [L]
Dat aanpassen naar mijn situatie leverde op:

Code: Select all

RewriteRule ^(corporate) - [L]
Maar dan kwam uit de test dat www.ouddomein.nl/corporate verwees naar www.ouddomein.nl/- , toen heb ik dat streepje maar vervangen door 'corporate'.. weet niet of het valide is..

Re: Verhuizen

Posted: Sun Feb 10, 2013 6:13 pm
by velden
Denk zeker niet dat dat valide is in jouw geval (wel valide, maar niet gewenst)
Het lijkt erop dat die htaccess tester de dash '-' niet geimplementeerd heeft.

Wat jouw rule nu zal doen is alles wat matched vervangen door 'corporate'. Dat is iets anders dan 'niets doen'.

bijv:

http://www.ouddomein.nl/corporate/test.php?param=1 --> http://www.ouddomein.nl/corporate

dat wil je niet lijkt me.

Bovendien moet je RewriteRule ná de condition komen als ik me niet vergis

Code: Select all

RewriteCond %{HTTP_HOST} ^(www\.)?ouddomein\.nl [NC]
RewriteRule ^corporate - [L]
RewriteRule ^(.*)$ http://www.nieuwdomein.nl/$1 [L,R=301] 
De haakjes om 'corporate' zijn in dit geval overbodig.

Re: Verhuizen

Posted: Mon Feb 11, 2013 5:40 pm
by brentnl
De tester zal dan wel niet goed werken, want die weet geen raad met jou code.
Ik ga morgen alles overzetten dus dan zal ik het wel gaan testen.

Re: Verhuizen

Posted: Wed Feb 13, 2013 2:54 pm
by brentnl
Je code werkt, top!

Re: Verhuizen

Posted: Wed Feb 13, 2013 5:15 pm
by velden
Goed om te horen.

Kun je gelijk even [solved] voor de titel van deze post plaatsen.