.htaccess language redirect

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Hi,

Ik heb een html website die uit 2 talen bestaat:
- nl (standaard taal en staat in de root)
- de (staat in de map /de, dus www.website.nl/de)

In de html code staat een java scriptje die de bezoeker doorverwijst naar de juiste website (phone of tablet), maar dit werkt verder goed.

Het gaat om het volgende, het onderstaande .htaccess bestand staat in de root van de website en werkt wanneer een bezoeker naar www.website.nl gaat en duits is, dan verwijst het .htaccess de bezoeker door naarwww.website.nl/de. Maar als de bezoeker bijvoorbeeld via google binnenkomt via een url die verwijst naar www.website.nl/contact.html dan wordt deze niet doorverwezen naar de duitse map (www.website.nl/de).

En het huidge .htaccess script lijkt alleen te werken voor de root, dus als men binnenkomt via www.website.nl/tablet/ gaat deze niet door naar www.website.nl/de/tablet/

.htaccess inhoud:

PHP: filename
1
2
3
4
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ http://www.website.nl/de/ [L,R=301]

[ Voor 8% gewijzigd door CdRwin op 15-06-2015 15:09 ]

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • phpn3rd
  • Registratie: April 2008
  • Laatst online: 15:14
CdRwin schreef op maandag 15 juni 2015 @ 13:36:
Hi,

Ik heb een html website die uit 2 talen bestaat:
- nl (standaard taal en staat in de root)
- de (staat in de map /de, dus www.website.nl/de)

In de html code staat een java scriptje die de bezoeker doorverwijst naar de juiste website (phone of tablet), maar dit werkt verder goed.

Het gaat om het volgende, het onderstaande .htaccess bestand staat in de root van de website en werkt wanneer een bezoeker naar www.website.nl gaat en duits is, dan verwijst het .htaccess de bezoeker door naarwww.website.nl/dee. Maar als de bezoeker bijvoorbeeld via google binnenkomt via een url die verwijst naar www.website.nl/contact.html dan wordt deze niet doorverwezen naar de duitse map (www.website.nl/de)

.htaccess inhoud:

PHP: filename
1
2
3
4
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ http://www.website.nl/de/ [L,R=301]
Niet echt ervaring mee, maar kun je dit niet op een dergelijke manier oplossen?

PHP: filename
1
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 06-08 02:35

NMe

Quia Ego Sic Dico.

Je laat hem dan ook alleen matchen op de root van je website door ^$ te gebruiken in plaats van .*
Je moet dan alleen wel ook die gematchte karakters ook mee-rewriten.

edit:
Wat ^^ zegt dus.

[ Voor 7% gewijzigd door NMe op 15-06-2015 13:39 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
NMe schreef op maandag 15 juni 2015 @ 13:39:
Je laat hem dan ook alleen matchen op de root van je website door ^$ te gebruiken in plaats van .*
Je moet dan alleen wel ook die gematchte karakters ook mee-rewriten.

edit:
Wat ^^ zegt dus.
Heb hier niet heel veel kaas van gegeten, zou je dit kunnen laten zien hoe ik dit kan toepassen?

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
phpn3rd schreef op maandag 15 juni 2015 @ 13:38:
[...]


Niet echt ervaring mee, maar kun je dit niet op een dergelijke manier oplossen?

PHP: filename
1
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]
Als ik mijn laatste regel vervang (RewriteRule ^$ http://www.website.nl/de/ [L,R=301]) door die van jou krijg ik heel veel /de/de/de/de/de/de/de enz en een looping error melding?

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • phpn3rd
  • Registratie: April 2008
  • Laatst online: 15:14
CdRwin schreef op maandag 15 juni 2015 @ 14:44:
[...]


Als ik mijn laatste regel vervang (RewriteRule ^$ http://www.website.nl/de/ [L,R=301]) door die van jou krijg ik heel veel /de/de/de/de/de/de/de enz en een looping error melding?
En als je er het volgende van maakt?

PHP: filename
1
2
RewriteRule ^de/(.*)$ - [L]
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]


Dit zou de loop af moeten breken als er al wordt gekeken in /de.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 06-08 02:35

NMe

Quia Ego Sic Dico.

CdRwin schreef op maandag 15 juni 2015 @ 14:43:
[...]

Heb hier niet heel veel kaas van gegeten, zou je dit kunnen laten zien hoe ik dit kan toepassen?
Er is een verschil tussen ergens geen kaas van gegeten hebben en niks doen om het zelf uit te vinden. ;) Sowieso zei ik hetzelfde als de poster boven me.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
NMe schreef op maandag 15 juni 2015 @ 14:58:
[...]

Er is een verschil tussen ergens geen kaas van gegeten hebben en niks doen om het zelf uit te vinden. ;) Sowieso zei ik hetzelfde als de poster boven me.
Ben ik helemaal met je eens, heb mijn probleem ook echt niet meteen hier gepost. Heb eerst al 2 dagen lopen stoeien met allerlei andere htaccess scripts. En proberen uit te vogelen wat de parameters betekenen.... maar het is gewoon niet eenvoudig als je niet weet wat je doet |:(

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 06-08 02:35

NMe

Quia Ego Sic Dico.

phpn3rd schreef op maandag 15 juni 2015 @ 14:49:
[...]


En als je er het volgende van maakt?

PHP: filename
1
2
RewriteRule ^de/(.*)$ - [L]
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]


Dit zou de loop af moeten breken als er al wordt gekeken in /de.
Doe dat liever netjes met een RewriteCond. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • phpn3rd
  • Registratie: April 2008
  • Laatst online: 15:14
NMe schreef op maandag 15 juni 2015 @ 15:11:
[...]

Doe dat liever netjes met een RewriteCond. :)
Eens, maar dit was het eerste was ik zo op Google vond :+

Los daarvan kan TS natuurlijk ook zelf op zoek op Google naar condities die /de uitsluiten ;)

Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
phpn3rd schreef op maandag 15 juni 2015 @ 14:49:
[...]

En als je er het volgende van maakt?

PHP: filename
1
2
RewriteRule ^de/(.*)$ - [L]
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]


Dit zou de loop af moeten breken als er al wordt gekeken in /de.
Wanneer ik nu naar de root ga in een NL browser gaat deze toch naar DE (lijkt wel of alles nu naar de DE versie gaat?).

Ik heb nu:
code:
1
2
3
4
5
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^de/(.*)$ - [L]
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • phpn3rd
  • Registratie: April 2008
  • Laatst online: 15:14
CdRwin schreef op maandag 15 juni 2015 @ 15:23:
[...]


Wanneer ik nu naar de root ga in een NL browser gaat deze toch naar DE (lijkt wel of alles nu naar de DE versie gaat?).

Ik heb nu:
code:
1
2
3
4
5
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^de/(.*)$ - [L]
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]
Maak daar dan eens het volgende van, los van de opmerking van NMe dat de /de er beter met een conditie uit gefilterd kan worden.

code:
1
2
3
4
5
RewriteEngine on
RewriteBase /
RewriteRule ^de/(.*)$ - [L]
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]


Als dit nog steeds verkeerd verwijst, dan klopt de taalconditie niet, aangezien de regel dan nog steeds uitgevoerd wordt, ongeacht deze waarde.

Nogmaals: er zijn sowieso nettere manieren en het gros ervan kun je ook prima via Google vinden.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
CdRwin schreef op maandag 15 juni 2015 @ 15:08:
Heb eerst al 2 dagen lopen stoeien met allerlei andere htaccess scripts. En proberen uit te vogelen wat de parameters betekenen.... maar het is gewoon niet eenvoudig als je niet weet wat je doet |:(
Als je dan gewoon eens de documentatie erbij pakt i.p.v. random scripts van jan-en-alleman te proberen (wat je hier in 't topic ook doet)? Ik kan me niet voorstellen dat je er met het lezen van de documentatie niet uit komt (en dat was toch écht de eerste hit op google).

Dan kun je ook aangeven wat je zélf hebt geprobeerd en waarom (wat je redenatie erachter is/was) en kunnen wij aangeven waar je mis gaat i.p.v. posten "dit heb ik gedaan *dump .htaccess* maar het werkt niet".

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
TOP phpn3rd!
Dit lijkt zo te werken, nog even goed door testen, maar lijkt er op dat dit um is!

Thanks man!
phpn3rd schreef op maandag 15 juni 2015 @ 15:26:
[...]


Maak daar dan eens het volgende van, los van de opmerking van NMe dat de /de er beter met een conditie uit gefilterd kan worden.

code:
1
2
3
4
5
RewriteEngine on
RewriteBase /
RewriteRule ^de/(.*)$ - [L]
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^(.*)$ http://www.website.nl/de/$1 [L,R=301]


Als dit nog steeds verkeerd verwijst, dan klopt de taalconditie niet, aangezien de regel dan nog steeds uitgevoerd wordt, ongeacht deze waarde.

Nogmaals: er zijn sowieso nettere manieren en het gros ervan kun je ook prima via Google vinden.

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
RobIII schreef op maandag 15 juni 2015 @ 15:39:
[...]

Als je dan gewoon eens de documentatie erbij pakt i.p.v. random scripts van jan-en-alleman te proberen (wat je hier in 't topic ook doet)? Ik kan me niet voorstellen dat je er met het lezen van de documentatie niet uit komt (en dat was toch écht de eerste hit op google).

Dan kun je ook aangeven wat je zélf hebt geprobeerd en waarom (wat je redenatie erachter is/was) en kunnen wij aangeven waar je mis gaat i.p.v. posten "dit heb ik gedaan *dump .htaccess* maar het werkt niet".
Ik heb heel wat forums doorgespit, en alle links van de 1e pagina gehad https://www.google.nl/?gw...taccess+language+redirect

Kwam er echt niet uit, dan werkt het wel maar kwam er looping in of was het weer iets anders. Wat voor de een eenvoudig is hoeft dat niet voor de ander te zijn....

Maar thx voor je advies!

www.Qbox.nl

Pagina: 1