htaccess redirect gaat niet goed

Status
Niet open voor verdere reacties.

damnsharp

Terugkerende gebruiker
Lid geworden
6 jan 2012
Berichten
1.385
Hoi,
Ik zit (weer) eens met redirects in mijn maag. Blijft lastig vind ik.
Melding bij Google bij verschillende links is Privacy error.

Ik heb een site intern verhuisd en deze stond onder subdirectory site (http://www.yorgoals.nl/site)
De site staat nu in de root.
De site heeft ook certificaat erbij.

De url is nu geworden: https://yorgoals.nl

Ik heb htaccess bestand aangepast.

Als ik alle urls bij google probeer gaan er een paar mis, bijna allen die starten met www:
inurl:yorgoals.nl
gaat mis: http://www.yorgoals.nl/site/aanmelden/
gaat mis: http://www.yorgoals.nl/site/persoonlijke-begeleiding/
gaat mis: http://www.yorgoals.nl/site/pricetable/
deze gaat goed, ik snap niet waarom: http://www.yorgoals.nl/site/zelfvertrouwen-en-weerbaarheid/

htaccess is:
Code:
# BEGIN Really Simple SSL
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
# END Really Simple SSL

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.yorgoals.nl [NC]
RewriteRule ^(.*)$ https://yorgoals.nl/$1 [L,R=301]

### redirect site/ to /
RewriteRule ^site/(.*)$ /$1 [L,R=301]

Wat doe ik niet goed?
Bedankt voor meedenken!
 
Laatst bewerkt:
www.yorgoals.nl gebruikt een ongeldig beveiligingscertificaat. Het certificaat is alleen geldig voor yorgoals.nl.
Je moet dus twee certificaten aanmaken voor je www domein en je niet-www domein, of een wildcard nemen (is vaak duur)
 
ah dus daar heeft het mee te maken! het is een letsencrypt certificaat maar misschien niet goed ingesteld dan
 
Die melding die ik citeerde moet sowieso opgelost worden.
Kijk dan even of redirect-probleem nog steeds speelt.
 
Als je de volgorde verandert en dubbele regels eruit haalt dan krijg je met deze htaccess
- wordpress staat in root
- directory /site redirect naar root /
- www redirect naar non-www
- http redirect naar https
Code:
### enable rewrite
RewriteEngine On
### set root as base
RewriteBase /
### no directory browsing
Options -Indexes

### redirect /site to non-www root /
RewriteCond %{HTTP_HOST} ^yorgoals.nl/site$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.yorgoals.nl/site$ [NC]
RewriteRule ^(.*)$ https://yorgoals.nl/$1 [R=301,L]

### redirect www to non www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

### force https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

### wordpress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Je hoeft niet op <IfModule mod_rewrite.c> .... </IfModule> te testen omdat mod_rewrite.c op iedere Apache server anwezig is.

Als je het in deze volgorde zet zal er niet meer dan 1 redirect zijn in alle situaties die kunnen voorkomen.

Suc6. Have fun.
 
Laatst bewerkt:
Hoi @bron, de code ziet er duidelijk en helder uit, dank je wel.

Op een paar linkjes na gaat het nog niet goed, moet ik die met een rewrite rule handmatig er nog bijzetten?
Wil je vertellen hoe ik dat beste doe?

Als ik google op yorgoals en bovenste resultaat ik klik op pricetable of Aanmelden krijg ik privacy foutmelding.

Thanks! :thumb:
 
Op een paar linkjes na gaat het nog niet goed, moet ik die met een rewrite rule handmatig er nog bijzetten?
Wil je vertellen hoe ik dat beste doe?
Heb je een voorbeeld van linkje(s) die niet werken en waar ze naar toe geredirect moeten worden?
 
De volgende 2 regels in htaccess zijn nodig zodat je ook naar "niet live WP" bestanden en directories moet kunnen browsen.
Deze 2 regels dus niet weghalen.
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Deze 2 regels betekenen dat als je naar bestaande bestanden of directories gaat dan worden die getoond in plaats van je live WP.
Bijvoorbeeld als ik naar /site/personal-training/particulieren/ (bestaande url) browse dan wordt die getoond, simpelweg omdat deze bestaat.

Er zijn meerdere oplossingen. Het komt erop neer dat je onjuiste linkjes in Google niet meer in /site/ mogen bestaan. Ikzelf verander in zulke gevallen de mapnaam /site/ in bijvoorbeeld /zzwp/ dan zullen alle linkjes in Google en linkjes bij klanten netjes worden geredirect (en je kan toch nog bij de oude WP).

De voorbeelden die je gaf

http://www.yorgoals.nl/site/pricetable/ ==> https://yorgoals.nl/pricetable/
wordt netjes geredirect

https://yorgoals.nl/site/personal-training/particulieren/
voldoet aan https en is non-www. Blijkbaar bestaat pagina 'particulieren' in /site/ en daarom wordt deze getoond.

http://www.yorgoals.nl/site/aanmelden/ => https://yorgoals.nl/aanmelden-bedrijven/
wordt netjes geredirect

// aanvulling
Je kan voor de zekerheid de cache van je browser legen.
Een handig linkje voor je browser favorieten : www.askapache.com/htaccess/
Je kan /site/ mapnaam zo laten en in de htaccess in map /site/ dit bovenaan zetten (verander ip addressen)
Code:
### Redirect all except these ip addresses
RewriteEngine On
ReWriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
ReWriteCond %{REMOTE_ADDR} !^234\.234\.234\.234$
RewriteRule ^(.*)$ https://yorgoals.nl/$1 [R=301,L]
 
Laatst bewerkt:
Dank je wel @bron voor de uitleg. En de handige site voor htaccess; zeer uitgebreide info.

Dat ik diverse links niet kon zien had bij mij met cache van de browser te maken, was niet goed leeg gemaakt.

Ik sluit de vraag, is prima opgelost :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan