Piwi-Web
31/01/12, 17:37
Dit is een beknopte howto wat de basis uitlegt.
SEO Url's of ook wel je Url's "rewriten".
Bij een standaard apacheinstallatie staat het ingeschakeld, de RewriteEngine. Hiermee kan je je URL's "mooi" maken.
Bij veel websites zie je zoiets:
http://www.mijnwebsite.nl/?page=nieuws&id=123
De URL zegt je enkel dat het een nieuwspagina is. Welk artikel je gaat lezen kan je niet uit de URL halen. Ook Google vindt deze URL's niet fijn en worden niet altijd goed geindexeerd. Je zou deze URL kunnen herschrijven naar:
http://www.mijnwebsite.nl/nieuws/123
Dat ziet er al veel beter uit maar je weet nog altijd niet wat je gaat lezen. Daarom zul je bij bovenstaand ook je code moeten veranderen waardoor een titel in je code wordt vertaald naar een nieuwsbericht. Je zal als resultaat zoiets krijgen:
http://www.mijnwebsite.nl/nieuws/Welkom-op-mijn-nieuwe-website/
De bezoeker weet bij bovenstaande URL dat hij het nieuwsbericht "Welkom op mijn nieuwe website" gaat lezen. Ook google waardeert dit waardoor je hoger in zoekresultaten kan komen.
De code (meestal in de .htaccess):
# Inschakelen rewriteengine
RewriteEngine On
# Basis is de rootdir
RewriteBase /
# Je URL rewriten
RewriteRule ^nieuws/(.*)/?$ /index.php?page=nieuws&id=$1 [NC,L]
De RewriteRule zullen we nu eens uit elkaar trekken.
^nieuws/(.*)/?$
Je begint altijd met een ^ en eindigt met /?$
nieuws/ zegt ons dat het hier om de nieuwspagina gaat
(.*) maakt een variabele aan ($1 in dit geval gezien het de eerste is). (.*) accepteert alle tekens! [a-z]+[A-Z] accepteert enkel A tot Z in kleine en hoofdletters. Je kan hier dus reguliere expressies gebruiken (zie onderaan voor details)
/index.php?page=nieuws&id=$1
Onze oude URL waarbij $1 onze variabele is
[NC,L]
Dit zijn de "flags". NC betekend dat deze regel niet hoofdlettergevoelig is en de L geeft aan dat er gestopt kan worden als deze regel gebruikt wordt. Voor meer flags zie hieronder.
Reguliere expressies
. (any character)
* (zero of more of the preceding)
+ (one or more of the preceding)
{} (minimum to maximum quantifier)
? (ungreedy modifier)
! (at start of string means "negative pattern")
^ (start of string, or "negative" if at the start of a range)
$ (end of string)
[] (match any of contents)
- (range if used between square brackets)
() (group, backreferenced group)
| (alternative, or)
\ (the escape character itself)
Flags
C (chained with next rule)
CO=cookie (set specified cookie)
E=var:value (set environment variable var to value)
F (forbidden - sends a 403 header to the user)
G (gone - no longer exists)
H=handler (set handler)
L (last - stop processing rules)
N (next - continue processing rules)
NC (case insensitive)
NE (do not escape special URL characters in output)
NS (ignore this rule if the request is a subrequest)
P (proxy - i.e., apache should grab the remote content specified in the substitution section and return it)
PT (pass through - use when processing URLs with additional handlers, e.g., mod_alias)
R (temporary redirect to new URL)
R=301 (permanent redirect to new URL)
QSA (append query string from request to substituted URL)
S=x (skip next x rules)
T=mime-type (force specified mime type)
Bron: http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/
SEO Url's of ook wel je Url's "rewriten".
Bij een standaard apacheinstallatie staat het ingeschakeld, de RewriteEngine. Hiermee kan je je URL's "mooi" maken.
Bij veel websites zie je zoiets:
http://www.mijnwebsite.nl/?page=nieuws&id=123
De URL zegt je enkel dat het een nieuwspagina is. Welk artikel je gaat lezen kan je niet uit de URL halen. Ook Google vindt deze URL's niet fijn en worden niet altijd goed geindexeerd. Je zou deze URL kunnen herschrijven naar:
http://www.mijnwebsite.nl/nieuws/123
Dat ziet er al veel beter uit maar je weet nog altijd niet wat je gaat lezen. Daarom zul je bij bovenstaand ook je code moeten veranderen waardoor een titel in je code wordt vertaald naar een nieuwsbericht. Je zal als resultaat zoiets krijgen:
http://www.mijnwebsite.nl/nieuws/Welkom-op-mijn-nieuwe-website/
De bezoeker weet bij bovenstaande URL dat hij het nieuwsbericht "Welkom op mijn nieuwe website" gaat lezen. Ook google waardeert dit waardoor je hoger in zoekresultaten kan komen.
De code (meestal in de .htaccess):
# Inschakelen rewriteengine
RewriteEngine On
# Basis is de rootdir
RewriteBase /
# Je URL rewriten
RewriteRule ^nieuws/(.*)/?$ /index.php?page=nieuws&id=$1 [NC,L]
De RewriteRule zullen we nu eens uit elkaar trekken.
^nieuws/(.*)/?$
Je begint altijd met een ^ en eindigt met /?$
nieuws/ zegt ons dat het hier om de nieuwspagina gaat
(.*) maakt een variabele aan ($1 in dit geval gezien het de eerste is). (.*) accepteert alle tekens! [a-z]+[A-Z] accepteert enkel A tot Z in kleine en hoofdletters. Je kan hier dus reguliere expressies gebruiken (zie onderaan voor details)
/index.php?page=nieuws&id=$1
Onze oude URL waarbij $1 onze variabele is
[NC,L]
Dit zijn de "flags". NC betekend dat deze regel niet hoofdlettergevoelig is en de L geeft aan dat er gestopt kan worden als deze regel gebruikt wordt. Voor meer flags zie hieronder.
Reguliere expressies
. (any character)
* (zero of more of the preceding)
+ (one or more of the preceding)
{} (minimum to maximum quantifier)
? (ungreedy modifier)
! (at start of string means "negative pattern")
^ (start of string, or "negative" if at the start of a range)
$ (end of string)
[] (match any of contents)
- (range if used between square brackets)
() (group, backreferenced group)
| (alternative, or)
\ (the escape character itself)
Flags
C (chained with next rule)
CO=cookie (set specified cookie)
E=var:value (set environment variable var to value)
F (forbidden - sends a 403 header to the user)
G (gone - no longer exists)
H=handler (set handler)
L (last - stop processing rules)
N (next - continue processing rules)
NC (case insensitive)
NE (do not escape special URL characters in output)
NS (ignore this rule if the request is a subrequest)
P (proxy - i.e., apache should grab the remote content specified in the substitution section and return it)
PT (pass through - use when processing URLs with additional handlers, e.g., mod_alias)
R (temporary redirect to new URL)
R=301 (permanent redirect to new URL)
QSA (append query string from request to substituted URL)
S=x (skip next x rules)
T=mime-type (force specified mime type)
Bron: http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/