htaccess html extensie verbergen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Ik heb al enkele uren gespendeerd met htaccess, maar krijg niet voor elkaar wat ik tracht te bereiken. Nochtans lijkt het op het eerste zicht heel simpel, maar misschien doe ik iets fout?

In een eenvoudige html website, wil ik omwille van SEO redenen volgende functionaliteit verkrijgen:Ik wil er dus voor zorgen dat er maar 1 unieke URL bestaat, zonder varianten daarop.
De code die ik hiervoor intussen in een .htaccess bestand heb geplaatst is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RewriteEngine On
Options -Indexes

# Remove www in url
RewriteCond %{HTTP_HOST} !^site\.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

# Remove html extension
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{REQUEST_URI} !-l
RewriteRule ^([\w\d\-]+)$ $1.html [L]

# Remove trailing slash
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]


Dit is vast niet moeilijk, maar ik geraak er niet meer aan uit.
Kan er iemand mij terug op het juiste spoor brengen?

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

En iets als RedirectMatch ^(.*test/)$ site.com/test? Je hoeft geen rewrite te doen, een redirect werkt net zo goed.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Hoe zou de file er dan volgens u moeten uitzien?
Ik heb al gemerkt dat de combinaties heel goed op elkaar afgestemd moeten zijn of er werkt niks meer.

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Misschien een vreemde vraag, maar waarom wil je de .html extensie juist weg hebben? AFAIK is het SEO-wise juist beter om een .html extensie te hebben.

Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Omdat de site zal vervangen worden door een cms en ik dezelfde url structuur wil behouden. Daarnaast zijn de urls ook iets meer leesbaar zonder extensie

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Ok, het is wat leesbaarder, maar je bent je wel bewust dat als je site.com/test/ intypt, je werkelijk site.com/test/index.html voor je neus krijgt? Dus je wilt dat je hoe dan ook een niveau omhoog gaat, ongeacht wat je opgeeft? Lijk mij niet echt handig eigenlijk, links die naar site.com/test/pagina.html verwijzen, worden dan dus weer doorgestuurd naar site.com/test(.html).

Enne, hoe de file er uit zou moeten zien? Beetje inzet kan geen kwaad hier. We gaan niet alles voorkauwen voor je. Jij stelt een vraag, wij geven een optie, aan jou de taak om die correct door te voeren.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Nee, enkel als er geen directory met dezelfde naam bestaat mag de rewrite gebeuren.

Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Het is me eindelijk gelukt met volgende rules
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Remove trailing slash if not a directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

# Redirect site.com/test/index.html to site.com/test/
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.html [NC]
RewriteRule . %1 [NE,R=301,L]

RewriteCond %{THE_REQUEST} ^GET\s.+\.html [NC]
RewriteRule ^(.+)\.html$ /$1 [NE,R=301,L,NC]

RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule . %{REQUEST_URI}.html [L]


Kunnen deze misschien nog verder vereenvoudigd worden?

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

-FoX- schreef op dinsdag 12 juni 2012 @ 20:38:
Omdat de site zal vervangen worden door een cms en ik dezelfde url structuur wil behouden. Daarnaast zijn de urls ook iets meer leesbaar zonder extensie
Mwa, met leesbaarheid zou ik geen rekening houden, daar kijken mensen toch al niet naar. .html geeft voor search engines aan dat het een pagina is, lijkt me dan veel logischer om dus .html gewoon te behouden. Maar goed, je hebt het inmiddels werkend... :)

Acties:
  • 0 Henk 'm!

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Topicstarter
Het W3C raadt dit zelf ook aan op volgende link (sectie "What to leave out"):
http://www.w3.org/Provider/Style/URI
File name extension. This is a very common one. "cgi", even ".html" is something which will change. You may not be using HTML for that page in 20 years time, but you might want today's links to it to still be valid. The canonical way of making links to the W3C site doesn't use the extension.

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Dan zou ik de regels niet in .htaccess zetten, maar als rewrite rules in je config (syntax is hetzelfde). Scheelt in laadtijd en anders moet elke keer het .htaccess bestand geopend worden.

[ Voor 6% gewijzigd door CH4OS op 13-06-2012 22:18 ]


Acties:
  • 0 Henk 'm!

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
CptChaos schreef op woensdag 13 juni 2012 @ 19:06:
[...]
Mwa, met leesbaarheid zou ik geen rekening houden, daar kijken mensen toch al niet naar. .html geeft voor search engines aan dat het een pagina is, lijkt me dan veel logischer om dus .html gewoon te behouden.
Search engines lezen de Content-Type header niet en geven een penalty als je html serveert zonder html-extensie?
Pagina: 1