URL Optimalisatie

Door Martijn Wieringa, 21 jaar geleden, 5.187x bekeken

Laad je URLs optimaal presteren in zoekmachines!

Gesponsorde koppelingen

Inhoudsopgave

  1. Tutorial: URL Optimalisatie voor zoekmachines
  2. Over zoekmachine optimalisatie
  3. De basis beginselen van URL optimalisatie
  4. De 'ideale' URL
  5. Bestaande URLs optimaliseren
  6. Geoptimaliseerde URLs vertalen
  7. Het totaal plaatje

 

Er zijn 9 reacties op 'Url optimalisatie'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Stien ss
stien ss
21 jaar geleden
 
0 +1 -0 -1
Goeie tut(Y), een probleem echter. In mijn links heb ik zoiets staat:
href="index.php?page=blaat"

Als ik nu op deze pagina zit: http://localhost/~/page/blaat, en ik klik op een link die naar een andere ( of dezelfde ) pagina verwijst, dan wordt dit de url: http://localhost/~/page/blaat/~/page/blaat2.

Hij plakt dus de heletijd de nieuwe link achter de oude, wat doe ik fout?
Jorik
Jorik
21 jaar geleden
 
0 +1 -0 -1
Daar je urls vaste waarden te geven, dus inclusief http://site.nl/etc. Evt kun je je hostname er door PHP uit laten halen.

Mooie tutorial, zelf gebruik ik vaak het volgende:
Options +FollowSymlinks
RewriteEngine on
RewriteRule (.+).htm http://www.eikenrijk.nl/index.php?p=$1 [nc]

Dit zet pagina.htm om in index.php?p=pagina. Hierdoor lijkt het alsof het allemaal statische HTML-pagina's zijn, maar in feite is het gewoon nog steeds index.php?p=pagina, dus een dynamische PHP pagina. Bevalt me goed, en ziet er niet zo ingewikkeld uit (dus geen extra rare mappen, bijv.)
Stien ss
stien ss
21 jaar geleden
 
0 +1 -0 -1
Owja ik zit het.. Je moet gewoon sDomainRoot een waarde geven ( http://localhost ) en dan werkt het perfect.
Martijn Wieringa
Martijn Wieringa
21 jaar geleden
 
0 +1 -0 -1
@Stien ut zat um in 'relatieve paden'.. gezien je directories simuleert denkt je browser dat relative pagina's vanaf het gesimuleerde pad zijn, terwijl dit natuurlijk vanaf je website root moest zijn. Daarom is het belangrijk deze webroot te definieren. Dit geld ook voor afbeeldingen en extrene JS en CSS bestanden. Relative paden werken NIET meer.
Femke
femke
21 jaar geleden
 
0 +1 -0 -1
Goeie Tutorial! Het is zeker een tactiek die door veel mensen vergeten wordt, maar gelukkig steeds meer gedaan wordt.

Helaas gaat je verhaal niet op als je hoster geen toegang geeft tot htaccess of de rewrite module met variabelen uitzet.

Je hebt het in je artikel over eerst al je data parsen voordat je de output print, misschien is het handig om ook daarover een artikel te schrijven? Ik heb er nog geen aangetroffen hier.
Martijn Wieringa
Martijn Wieringa
21 jaar geleden
 
0 +1 -0 -1
@FEMKE..

da's eerst parsen en dan outputten werkt in princiepe heel simpel.. eerst alles in 1 (of meerdere) variabelen opslaan, in plaats van 'print(...)' en 'echo ...' te gebruiken..

Maar blij dat je de tutorial nuttig vind (:
Jeroen
Jeroen
21 jaar geleden
 
0 +1 -0 -1
Hoe kan ik met .htaccess bestanden naar een map te redirecten?

voorbeeld:
map/bestand1.php
map/bestand2.php

redirecten naar:
map/bestand1/
map/bestand2/

Ik kom er echt niet uit.
Daan
Daan
21 jaar geleden
 
0 +1 -0 -1
Wat ik graag zou willen is hetzelfde als hier op phphulp.nl:
  • url zonder keys, alleen waardes
  • in de code is <a href="/php/tutorials/8/463/">Deze tut</a> mogelijk
  • in het schript kan wel gewoon $_GET gebruikt worden (met key)

Is dat niet mogelijk? Zo gebeurt het toch ook hier op phphulp?

Is er niet iemand die de code van phphulp hiervoor ff online kan zetten?

edit: typo
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Martijn Wieringa
Martijn Wieringa
21 jaar geleden
 
0 +1 -0 -1
Nadeel van zo'n aanpak is dat elke parameter (ook als deze niet bestaat) verplicht is..

Maar via htaccess kun je dat zo oplossen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
# Start rewrite engine
RewriteEngine On

# Catch arg0/arg1/arg2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?arg0=$1&arg1=$2&arg2=$3


Nadeel met deze methode is dat je via deze regex elke mogelijk combinatie moet afvangen om je URL zo flexibel mogelijk te houden.

Deze acepteerd alleen een url als

a/b/c

Een url als a/b snapt deze regel niet, in dit voorbeeld zijn de argumenten dus noodzakelijk anders wordt de URL niet vertaald.

Omdat de / als scheidingsteken fungeert mag deze waarde dus ook niet in de waardesvan arg0, arg1 of arg2 zitten (gebruik URLENCODE om dat te voorkomen)

Om ook URLs af te vangen met minder parameters, moet je de regex aanpassen, of extra regels toevoegen, zoals:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
# Catch arg0/arg1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?arg0=$1&arg1=$2



Edit:
Merk dus op dat de aanroep vertaald wordt naar de index.php in de map waarin het HTACCESS bestand staat.

Je kunt de GET eenvoudig testen in de indexfile met

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    print_r($_GET);
?>

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Tutorial: URL Optimalisatie voor zoekmachines
  2. Over zoekmachine optimalisatie
  3. De basis beginselen van URL optimalisatie
  4. De 'ideale' URL
  5. Bestaande URLs optimaliseren
  6. Geoptimaliseerde URLs vertalen
  7. Het totaal plaatje

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.